我需要关于我的第一个D项目的建议。我把它上传到:-
https://bitbucket.org/mrjohns/matcher/downloads
思想:对3种运行时算法进行基准测试,并将它们与编译时变体进行比较。它们之间的唯一区别是,对于编译时,查找表(即数组bmBc、bmGs和后缀)必须在编译时计算(我目前依赖CTFE )。对于运行时的表,查找表是在运行时计算的。
注意:模式匹配算法本身不需要在编译时执行,只有查找tables.Having指出,运行在已知(编译时计算)表上的算法必须比必须在运行时计算它们的算法更快。
我的结果似乎显示了一些不同的东西,只有第一对( BM_Runtime和BM_compile)产生可接受的结果,另外两对为编译时变体提供了更高的执行时间。我想我漏掉了什么东西。请帮帮忙。
pattern="GCAGAGAG“目前的结果如下:
**BM_Runtime** = 366 hnsecs position= 513
**BM_Compile-time** = 294 hnsecs position =513
**BMH_Runtime** = 174 hnsecs position= 513
**BMH_Compile-time** = 261 hnsecs position= 513
**AG_Run-time** = 258 hnsecs position= 513
**AG_Compile-time** = 268 hnsecs position= 513运行代码:dmd -J。rtime_pre.d ctime_pre.d && numactl --physcpubind=0 ./matcher
我很感谢你的建议。
在这里感谢你。
发布于 2015-08-17 15:17:33
在不激活编译器优化的情况下,任何性能测试都是无用的。您应该添加dmd -release -inline -O -boundscheck=off。此外,通常性能测试使用循环重复计算。否则你可能会得到不正确的结果。
https://stackoverflow.com/questions/32053493
复制相似问题