分配器实现确实取巧了,只是想说明C++ 优化性能能接近性能的物理极限,不至于比 C# 慢。
将先前一个通用的分配器改成了一个单增分配的一次性分配全部内存的分配器。如果将分配器改成通用的,性能估计没有这个效果好。但是 HashMap 还可以优化 Hash 函数等提升性能。因此即使用较通用的分配器性能会下降点,但是可以通过优化 Hash 函数等再提升点。
见笑了,贴3个图(另外查询里的实现,也做些小幅改动。避免重复查询)。
【 在 allegro 的大作中提到: 】
: 楼主这个测试程序比较特别,就是只插入,没有删除。
: 这种allocator可以取巧,比如只reserve一个buffer,一直在尾部增长。
: 你的alloator可否一观?
: ...................
d
--
修改:wesleyzeng FROM 47.251.4.*
FROM 47.251.4.*