Jump to content

Search the Community

Showing results for tags 'custom memory allocator'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • BOHEMIA INTERACTIVE
    • BOHEMIA INTERACTIVE - NEWS
    • BOHEMIA INTERACTIVE - JOBS
    • BOHEMIA INTERACTIVE - GENERAL
  • FEATURED GAMES
    • Vigor
    • DAYZ
    • ARMA 3
    • ARMA 2
    • YLANDS
  • MOBILE GAMES
    • ARMA MOBILE OPS
    • MINIDAYZ
    • ARMA TACTICS
    • ARMA 2 FIRING RANGE
  • BI MILITARY GAMES FORUMS
  • BOHEMIA INCUBATOR
    • PROJECT LUCIE
  • OTHER BOHEMIA GAMES
    • ARGO
    • TAKE ON MARS
    • TAKE ON HELICOPTERS
    • CARRIER COMMAND: GAEA MISSION
    • ARMA: ARMED ASSAULT / COMBAT OPERATIONS
    • ARMA: COLD WAR ASSAULT / OPERATION FLASHPOINT
    • IRON FRONT: LIBERATION 1944
    • BACK CATALOGUE
  • OFFTOPIC
    • OFFTOPIC
  • Die Hard OFP Lovers' Club's Topics
  • ArmA Toolmakers's Releases
  • ArmA Toolmakers's General
  • Japan in Arma's Topics
  • Arma 3 Photography Club's Discussions
  • The Order Of the Wolfs- Unit's Topics
  • 4th Infantry Brigade's Recruitment
  • 11th Marine Expeditionary Unit OFFICIAL | 11th MEU(SOC)'s 11th MEU(SOC) Recruitment Status - OPEN
  • Legion latina semper fi's New Server Legion latina next wick
  • Legion latina semper fi's https://www.facebook.com/groups/legionlatinasemperfidelis/
  • Legion latina semper fi's Server VPN LEGION LATINA SEMPER FI
  • Team Nederland's Welkom bij ons club
  • Team Nederland's Facebook
  • [H.S.O.] Hellenic Special Operations's Infos
  • BI Forum Ravage Club's Forum Topics
  • Exilemod (Unofficial)'s General Discussion
  • Exilemod (Unofficial)'s Scripts
  • Exilemod (Unofficial)'s Addons
  • Exilemod (Unofficial)'s Problems & Bugs
  • Exilemod (Unofficial)'s Exilemod Tweaks
  • Exilemod (Unofficial)'s Promotion
  • Exilemod (Unofficial)'s Maps - Mission Files
  • TKO's Weferlingen
  • TKO's Livonia
  • TKO's Rules
  • TKO's Changelog
  • TKO's Help
  • TKO's What we Need
  • TKO's Saint Kapaulio
  • TKO's Cam Lao Nam
  • MSOF A3 Wasteland's Server Game Play Features
  • MSOF A3 Wasteland's Problems & Bugs
  • MSOF A3 Wasteland's Maps in Rotation
  • SOS GAMING's Server
  • SOS GAMING's News on Server
  • SOS GAMING's Regeln / Rules
  • SOS GAMING's Ghost-Town-Team
  • SOS GAMING's Steuerung / Keys
  • SOS GAMING's Div. Infos
  • SOS GAMING's Small Talk
  • SOS GAMING's TS³ Viewer
  • NAMC's Topics
  • NTC's New Members
  • NTC's Enlisted Members
  • The STATE's Topics
  • CREATEANDGENERATION's Intoduction
  • CREATEANDGENERATION's HAVEN EMPIRE (NEW CREATORS COMMUNITY)
  • HavenEmpire Gaming community's HavenEmpire Gaming community
  • Polska_Rodzina's Polska_Rodzina-ARGO
  • Carrier command tips and tricks's Tips and tricks
  • Carrier command tips and tricks's Talk about carrier command
  • ItzChaos's Community's Socials
  • Photography club of Arma 3's Epic photos
  • Photography club of Arma 3's Team pics
  • Photography club of Arma 3's Vehicle pics
  • Photography club of Arma 3's Other
  • Spartan Gamers DayZ's Baneados del Servidor
  • Warriors Waging War's Vigor
  • kjgiudhsiugiudfhiughsidiug's ihgdifhgiusdhfigisudhfiugdsf
  • Tales of the Republic's Republic News

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Yahoo


Jabber (xmpp)


Skype


Biography


Twitter


Google+


Youtube


Vimeo


Xfire


Steam url id


Raptr


MySpace


Linkedin


Tumblr


Flickr


XBOX Live


PlayStation PSN


Origin


PlayFire


SoundCloud


Pinterest


Reddit


Twitch.Tv


Ustream.Tv


Duxter


Instagram


Location


Interests


Interests


Occupation

Found 1 result

  1. --- === Updated 1 (2022-05-05) === --- Happy Labour Day! Half a year has been passed since the first published version of Gold's CMA, and now here's some news about it. Microsoft's mimalloc https://github.com/GoldJohnKing/mimalloc/releases It has been updated to v2.0.6, following upstream, though Microsoft's update mainly focus on macOS related function. Besides, I have refactored many part of the malloc to make it more robust and more efficient, as well as provided more variants to let you choose. mimalloc-v206.dll is for general use, if you do not know which one to choose, this is always the recommendation. If you have large memory and always have more than 8 GB consecutive free memory space when you run Arma 3, you may try mimalloc-v206-lock-pages.dll, as it would lock several consecutive 1 GB large pages in your physical memory and prevent it from being swapped into virtual memory. However, based on various tests and players' feedback, this may only provide minor performance gain, while bring side-effects in some circumstances. I would not recommend to use this variant personally, but it does do better works sometimes. If you have large memory and do not want to use the "lock-pages" variant, or you frequently encounter the "STATUS_ACCESS_VIOLATION" crash, you may want to try mimalloc-v206-no-collect.dll. This variant would omit all memory flush/free requests from Arma 3, keeping the memory blocks managed by mimalloc internally, which may greatly reduce the probability of the crash. However, this crash is usually caused by hardware issue, you shall always check if your PC is too overclocked or too old. If you have small memory, I recommend using mimalloc-v206-scheduled-collect.dll. This variant would collect and flush unused memory every 5 minutes, which may keep the memory less fragmented and reduce memory use. However, this is not without risks. As I said above, if you frequently encounter the "STATUS_ACCESS_VIOLATION" crash, you should fallback to general one or "no-collect" variant. Epic's rpmalloc https://github.com/GoldJohnKing/rpmalloc/releases Yes! Here's a new memory allocator ported to Arma series! But mainly as a supplement to mimalloc and tbbmalloc. rpmalloc is designed to be lock free. It is lightweight that it does not have as many overheads as mimalloc or tbbmalloc does. Intel's tbbmalloc https://github.com/GoldJohnKing/oneTBB/releases Intel is not updating their tbbmalloc that often, and it's not as feature rich as mimalloc, so It's still the same. About Large Pages / Huge Pages / Lock pages You need to first guarantee Lock Page privilege to your user account and reboot your system, then set arma3_x64.exe to always rub with Administrator rights. Only then can the memory allocator utilize huge page support and bring the performance boost as expected. You may refer to this article by Microsoft: https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/enable-the-lock-pages-in-memory-option-windows About AVX, AVX2 and AVX512 Through various tests on different machines and by digging deeper into the memory allocator itself, it is now sure that the performance improvement mainly comes from huge pages support. The AVX, AVX2 or AVX512 instruction set does not bring any difference at all, because the memory allocator does not utilize it at all. Yes, I am pretty sure now, AVX is mainly a placebo. Sad. If you are familiar with AVX, please correct me, or tell me more about it. About BattlEye It has been reported by some users that some versions of my memory allocators has been whitelisted by BattlEye, but I have not confirmed it yet. If you can confirm which file(s) has been whitelisted by BattlEye, feel free to tell about it! --- === Original Contents Below (2021-12-25) === --- Merry Xmax! This is GoldJohnKing, a newbie C++ programer, a probably well-known Arma 3 server administrator, and a community developer in China Mainland. I recently dived into something about memory allocator at work, and comes up the idea of porting some well-known memory allocator to Arma Series. And ofc I finally did it! 🤣 Here I present you two new CMA for both Arma 3 and Arma 2 Operation Arrowhead, with a potential 5%-10% performance gain than vanilla TBBv4, tested by myself and can be replicated by some players in Arma 3 Discord. These ports are open sourced and binary files are provided as well, I really hope you enjoy it! Note: The binary files on Github Release pages may not always up-to-date with the newest source code. If you know how to compile, I strongly recommend you compile it by yourself. Microsoft's mimalloc The first one is Microsoft's mimalloc, which is currently used in Death Stranding, and I highly recommend you try this out first! The port is based on v2.0.3, download link and source code are provided below: https://github.com/GoldJohnKing/mimalloc/releases As I said in the above release page, mimalloc utilizes (reserved) huge pages, and may give a performance boost of 5-15% than vanilla TBB4 memory allocator, depends on your PC's specifications and actual scenarios. mimalloc.dll is for players with large free memory, as it would lock pages to reduce memory reallocation and fragmentation. If you have a small memory, or you need to run programs alongside with Arma 3 which would take large memory consumptions, or you get conspicuous performance degrades when using mimalloc.dll, then use mimalloc_without_reserved_huge_pages.dll instead. It may better handle memory consumption and help to prevent performance degrade at a long run as well. You can read Microsoft's repo to see what feature mimalloc provides. And this should be the first ever port of Microsoft's mimalloc to Arma Series! Intel's tbbmalloc The second one is Intel's tbbmalloc. It is part of Intel's oneAPI Threading Building Blocks project. Arma 3 officially used TBBv4 version 2017U3, it's old and has some potential bugs (for example, the well-known 0xC0000005 STATUS_ACCESS_VIOLATION). Blud and some other people have ported one for arma, known as CMA and xarmalloc or something. Their source code is where I start: without their work, I wont be able to know how to port one for Arma, thanks for their work! However, thier version contains many codes for debug and performance stats purpose, as well as some actually not required codes, which would cause overhead under some situations. Besides, their version has been reported of having memory leak and crash in the long run. My version is based on v2021.5.0, and has been tested for continuously long time run without conspicuous issues, download link and source code are provided below: https://github.com/GoldJohnKing/oneTBB/releases As I said in the above release page, it only utilizes huge pages of the OS, which may give a performance boost of 5-10% than vanilla TBB4 memory allocator, depends on your PC's specifications and actual scenarios. However, it is not feature-rich than Microsoft's mimalloc. It may not handle memory fragmentation at a long run as Microsoft's mimalloc does. So I suggest you try our both, and select the one suits you, if mimalloc has some problems or you would like to find out yourself. Some notes about findings on creating CMA has been posted on BI Wiki, see: https://community.bistudio.com/wiki/Arma_3:_Custom_Memory_Allocator Feedback and code reviews are highly welcomed, no matter if you are a BI staffs senior programmer, community developer, server admin or just a normal player. And if you can read Chinese/Mandarin, you can watch my video about it on Bilibili: https://www.bilibili.com/video/BV1GZ4y1X752/ https://www.bilibili.com/video/BV1EL4y1n7f2/ https://www.bilibili.com/video/BV1ar4y1S7Jo/ https://www.bilibili.com/video/BV1EM4y1F7DA/ Thanks the community! Thanks BI! Love ya all! 🤗
×