|
|
1
3
一个基准评注:使用
我在你的微基准测试中添加了一些额外的循环,以使它做更多的工作(并且我修复了
使用
使用
我的假设是:这是GC开销。当支持向量发生变异时,Racket的分代GC会记住该向量,以便在下一个次要集合中扫描它。当支持向量非常大时,在每个次要GC上扫描整个向量会超过重新分配和复制的成本。如果GC具有更好的记忆集粒度(但……权衡),则不会产生开销。 顺便说一句,通过查看gvector代码,我发现了一些改进的机会。不过,它们并没有改变大局。 |
|
|
2
1
用因子10增加向量大小,我在DrRacket中得到以下结果 (关闭所有调试):
注意:如果第一个基准测试留下了垃圾,它可能会影响下一个基准测试。因此,在再次使用之前,使用收集垃圾(三次)。 另外…不要像我一样在DrRacket中进行基准测试-使用命令行。 |
|
|
Joe · 如何修复“无法更改常量”错误 8 年前 |
|
|
xnv23 · 使用方案中的变量创建环境 8 年前 |
|
|
Jaro · racket:处理jpeg文件 8 年前 |
|
|
Atonic · 提供语法规则Racket 8 年前 |
|
|
Zelphir Kaltstahl · 程序开始时的当前延续 8 年前 |
|
|
user8866063 · 在递归过程中打印 8 年前 |
|
|
Nime · 生成递归和结构递归之间有什么区别? 8 年前 |