我是D语言的新手,需要测量算法的执行时间。我有什么选择?已经有一些内置的解决方案了吗?我在网络上找不到任何决定性的内容。

最佳答案

一种方法是使用-profile命令行参数。运行该程序后,它将创建文件trace.log,您可以在其中找到每个函数的运行时间。这当然会减慢您的程序的速度,因为编译器会将计时代码插入每个函数中。此方法用于查找功能的相对速度,以确定您应该进行哪些优化以最小的努力来提高应用速度。

第二种选择是使用std.datetime.StopWatch类。请参阅链接中的示例。

甚至更合适的方法可能是直接使用std.datetime.benchmark函数。

不要忘记:

基准测试时,请使用这些dmd编译器标志来实现最大程度的-release -O -inline -noboundscheck优化。

  • 从不对调试版本进行基准测试。
  • 确保您未在​​基准测试函数内调用任何库代码-您将基准测试库实现的性能,而不是自己的代码。

  • 另外,您可以考虑使用LDCGDC编译器。与DMD相比,它们都提供了更好的优化/应用运行速度。

    09-15 17:27