FastMM是Embarcadero Delphi的內存管理器的替代品
FastMM是Embarcadero Delphi的內存管理器的替代品,可在多線程和CPU內核之間很好地擴展,不易出現內存碎片,并且無需使用外部.DLL文件即可支持內存共享。
版本5是完全重寫了FastMM,從頭開始設計,目的是同時保持其優勢并解決4.992版的bug。
這一版本極大的改進對跨多CPU內核的多線程擴展,而不會出現內存使用中斷的情況。對于任意數量的CPU內核,可以將其配置為接近線性擴展。
在Fastcode內存管理器基準測試工具中,FastMM 5在單線程基準上得分比FastMM 4.992高15%,在多線程基準上得分高30%。(啟用了I7-8700K CPU,EnableMMX和AssumeMultithreaded選項。)
這一版本在運行時實現了完全可配置,這不需要更改條件定義并重新編譯。(但是,它與第4版條件定義中的許多版本向后兼容。)
調試模式默認使用與版本4(FastMM_FullDebugMode.dll)相同的調試支持庫,但是還支持自定義堆棧跟蹤例程。調用FastMM_EnterDebugMode切換到調試模式(“ FullDebugMode”),然后調用FastMM_ExitDebugMode返回性能模式。調用可以嵌套,在這種情況下,在上一次FastMM_ExitDebugMode調用之后將退出調試模式。
這一版本支持所有塊的8、16、32或64字節對齊。調用FastMM_EnterMinimumAddressAlignment以請求最小塊對齊,并調用FastMM_ExitMinimumAddressAlignment以撤消先前的請求。調用可以嵌套,在這種情況下,最粗略的對齊請求將生效。
所有事件通知(錯誤,內存泄漏消息等)都可以路由到調試器(通過OutputDebugString),日志文件,屏幕或三者的任意組合。消息是使用包含郵件合并令牌的模板構建的??梢愿倪\行時模板,以促進不同的布局和/或翻譯成任何語言。模板完全支持Unicode,并且可以將日志文件配置為以UTF-8或UTF-16格式編寫,帶有或不帶有BOM。
可以通過FastMM_SetOptimizationStrategy調用將運行時配置為有利于速度,內存使用效率或兩者的結合。
地址:https://github.com/pleriche/FastMM5