blueminder / flycast-dojo

A fork of Flycast, a multiplatform Sega Dreamcast, Naomi and Atomiswave emulator. Intended for netplay and quality of life improvements for training & online tournament play
http://flycast.dojo.ooo
GNU General Public License v2.0
207 stars 15 forks source link

Make use of a few deps to boost performance and safety #7

Closed WSLUser closed 3 months ago

WSLUser commented 3 years ago

Please Note: This form is the minimum required information for submitting bugs.
Removing this form may lead to your issue being closed until it is completed.

Platform / OS / Hardware: All

Github hash: N/A

Hardware: All

Description of the Issue

Add a short, concise description of the issue here

There are several header only libraries that can make this project become more performant and boost type safety among other things.

1.) Make use of https://github.com/pinam45/dynamic_bitset and it's optional dependency: https://github.com/kimwalisch/libpopcnt

2.) Make use of https://github.com/fmtlib/fmt. It is the implementation of C++20 std::format and is used for many things regarding iostreams especially regarding string formatting.

3.) Make use of https://github.com/microsoft/mimalloc. Any allocations will have their perf drastically increased and you need to do is make a minor update to the build system, which for Cmake is very easy. See Contour Terminal's pull request 341 for example.