Changelog
- Merge upstream changes v2.1.7, see https://github.com/microsoft/mimalloc#releases for details.
- Update Intel® oneAPI DPC++/C++ Compiler to 2025.0.0.
Description
This is a port of Microsoft's mimalloc memory allocator for Arma 3 and Arma 2: Operation Arrowhead, which utilizes large pages to achieve up to 30% higher FPS than default memory allocator while siginificantly improves the worst case FPS (or the lowest FPS), depending on your PC's specifications and actual scenarios.
Which One Should I Use?
For General Use: mimalloc_<version>.dll
mimalloc_<version>.dll
is for general use, if you do not know which one to choose, this is always the recommendation.
For PC with Large Memory: mimalloc_<version>_lock_pages.dll
This variant locks up to 8 consecutive 1GB large pages in your physical memory and prevents them from being swapped into virtual memory. Personally I won't recommend it, as it consumes huge amount of memory but only provides a little bit more performance gain than mimalloc_<version>.dll
. However, some users say it does do better work than mimalloc_<version>.dll
, so you may give a try.
For PC with Limited Memory: mimalloc_<version>_scheduled_collect.dll
This variant flushes unreferenced memory blocks every 5 minutes to keep memory more compact and less fragmented, leading to more stable performance on memory-limited PC while reducing overall memory consumption. However, if you get "STATUS_ACCESS_VIOLATION" crash frequently, you should fallback to mimalloc_<version>.dll
, or try mimalloc_<version>_no_collect.dll
.
To Avoid Frequently Crash: mimalloc_<version>_no_collect.dll
If you frequently get "STATUS_ACCESS_VIOLATION" crash, you should try mimalloc_<version>_no_collect.dll
. This variant omits all memory flush/free requests from Arma 3, keeping the memory blocks managed by mimalloc internally, which may reduces the probability of "STATUS_ACCESS_VIOLATION" crash. Despite program error (Arma itself or mods' fault), hardware error can also lead to the crash, so I recommend check your PC first, make sure it is neither too overclocked nor too old.