我是D语言的新手,需要测量算法的执行时间。我有什么选择?已经有一些内置的解决方案了吗?我在网络上找不到任何决定性的内容。
最佳答案
一种方法是使用-profile
命令行参数。运行该程序后,它将创建文件trace.log,您可以在其中找到每个函数的运行时间。这当然会减慢您的程序的速度,因为编译器会将计时代码插入每个函数中。此方法用于查找功能的相对速度,以确定您应该进行哪些优化以最小的努力来提高应用速度。
第二种选择是使用std.datetime.StopWatch类。请参阅链接中的示例。
甚至更合适的方法可能是直接使用std.datetime.benchmark函数。
不要忘记:
基准测试时,请使用这些dmd编译器标志来实现最大程度的-release -O -inline -noboundscheck
优化。
另外,您可以考虑使用LDC或GDC编译器。与DMD相比,它们都提供了更好的优化/应用运行速度。