欢迎!请参阅关于页面以获取有关如何操作的更多信息。
未展开的小地图改进的占位符(CLJ-1517中数组的配套项)。
评论者:jafingerhut
是否期望这些性能优于PersistentArrayMap?
评论者:ztellman
是的,在某些情况下,性能显著提升,原因有三(按重要性排序)
在https://github.com/ztellman/cambrian-collections/blob/master/test/cambrian_collections/map_test.clj#L64-L148中有一系列基准测试,将操作与使用关键词(不受益于哈希比较)和符号(受益于哈希比较)的映射进行比较。7项映射示例导致未展开的映射溢出,因此仅存在以测试溢出机制。
我已经在我笔记本电脑上运行了基准测试套件,结果在https://gist.github.com/ztellman/961001e1a77e4f76ee1d。一些值得注意的结果
into
其他基准测试因未展开代码而略微更快,但大多数性能提升来自上述行为。在一个更不合成化的基准测试中,我发现Cheshire JSON解码(占33%的JSON词法分析和66%的数据结构构建)速度提高了大约30-40%。