用D语言测量执行时间

cls*_*udt 11 performance time d execution-time

我是D语言的新手,需要测量算法的执行时间.我有什么选择?是否已经有一些内置的解决方案?我在网上找不到任何结论.

Mic*_*ich 14

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

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

或者甚至更适合可能是直接使用std.datetime.基准功能.

别忘了:

  1. 基准测试时使用这些dmd编译器标志来实现最大化优化-release -O -inline -noboundscheck.
  2. 从不测试调试版本.
  3. 确保不在基准测试函数中调用任何库代码 - 您将对库实现的性能进行基准测试而不是您自己的代码.

此外,您可以考虑使用LDCGDC编译器.它们都比DMD提供更好的优化/ app运行速度.