红鱼儿

统计

FastMM5来了!

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

这是个令人兴奋的版本,看到有朋友测试,竟然比4快了6倍。

posted on 2020-05-01 12:38  红鱼儿  阅读(691)  评论(0编辑  收藏