![]() |
1
3
一个基准评注:使用
我在你的微基准测试中添加了一些额外的循环,以使它做更多的工作(并且我修复了
使用
使用
我的假设是:这是GC开销。当支持向量发生变异时,Racket的分代GC会记住该向量,以便在下一个次要集合中扫描它。当支持向量非常大时,在每个次要GC上扫描整个向量会超过重新分配和复制的成本。如果GC具有更好的记忆集粒度(但……权衡),则不会产生开销。 顺便说一句,通过查看gvector代码,我发现了一些改进的机会。不过,它们并没有改变大局。 |
![]() |
2
1
用因子10增加向量大小,我在DrRacket中得到以下结果 (关闭所有调试):
注意:如果第一个基准测试留下了垃圾,它可能会影响下一个基准测试。因此,在再次使用之前,使用收集垃圾(三次)。 另外…不要像我一样在DrRacket中进行基准测试-使用命令行。 |
![]() |
KWMuller · 如何在Netbeans中访问调用计数? 7 年前 |
![]() |
Tim · 测量所有目标(包括相关目标)的xcodebuild持续时间 7 年前 |
![]() |
Bram · 如何启动和停止性能采样 7 年前 |
![]() |
GoodGoodMan · 如何测量C代码中方法的cpu和内存使用率 7 年前 |
![]() |
JumpingJezza · 读取2D矩阵的最快方法 7 年前 |
![]() |
Mayank · 作为后台服务运行的行分析python代码 7 年前 |