首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么向量如此浅显?

为什么向量如此浅显?
EN

Stack Overflow用户
提问于 2012-09-18 00:34:25
回答 3查看 455关注 0票数 7

Scala向量的分支因子为32,而不是其他数字,背后的理论基础是什么?较小的分支因子不是可以实现更多的结构共享吗?Clojure似乎使用了相同的分支因子。分支因子32有什么神奇之处吗?

EN

回答 3

Stack Overflow用户

发布于 2012-09-18 00:58:09

詹姆斯·布莱克的答案是正确的。选择32个项目的另一个理由可能是,在许多现代处理器中,高速缓存线的大小是64字节,因此两条线可以容纳32个整数,每个4个字节,或者在32位机器上可以容纳32个指针,或者在64位JVM上,由于指针压缩,堆大小可以达到32 to。

票数 8
EN

Stack Overflow用户

发布于 2012-09-18 00:47:59

这是更新的“有效持续时间”。有了这么大的分支因子,你永远不需要超过5个级别,即使是to级的向量。这是一段视频,Rich在9频道上谈论了这一点和Clojure的其他方面。http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Rich-Hickey-and-Brian-Beckman-Inside-Clojure

票数 4
EN

Stack Overflow用户

发布于 2012-09-18 01:06:13

只是补充一下James的答案。

从算法分析的角度来看,

因为这两个函数的增长是对数的,所以它们以相同的方式缩放。

但是,在实际应用中,具有

跳数是比基数2小得多的跳数,足以使其更接近恒定时间,即使对于相当大的N值也是如此。

我敢肯定,由于某些内存块的大小,他们准确地选择了32个(而不是更高的数字),但主要原因是与较小的大小相比,跳数较少。

我还建议你在InfoQ上观看这个演示文稿,Daniel Spiewak在http://www.infoq.com/presentations/Functional-Data-Structures-in-Scala中讨论了大约30分钟开始的向量

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12463547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档