我是D语言的新手,需要测量算法的执行时间。我有什么选择?是否已经有一些内置的解决方案?我在网上找不到任何结论。
答案 0 :(得分:14)
一种方法是使用-profile
命令行参数。运行程序后,它将创建文件 trace.log ,您可以在其中找到每个函数的运行时间。这当然会减慢你的程序,因为编译器会将计时代码插入到你的每个函数中。此方法用于查找函数的相对速度,以确定您应该优化哪些以最小的努力提高应用程序速度。
第二个选项是使用std.datetime.StopWatch类。请参阅链接中的示例。
或者更合适的可能是直接使用std.datetime.benchmark功能。
不要忘记:
答案 1 :(得分:3)
如果你的算法可以从命令行调用,那么用D编写的一个漂亮的实用程序会运行你的程序很多次并打印出平均所用时间和所有其他有用数字的分布。
它被称为avgtime,它在这里:https://github.com/jmcabo/avgtime
答案 2 :(得分:0)
std.benchmark位于审核队列中。