欢迎!请查看关于页面以了解更多有关如何工作的信息。
展开小映射增强的占位符(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%之间。