欢迎!有关此功能的更多信息,请参阅关于页面。
展开小映射增强的占位符(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%。