Skip to content

Arma-3-v2.1.7-20241117

Latest
Compare
Choose a tag to compare

Changelog

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.