我是 D 语言新手,需要测量算法的执行时间。我有什么选择?是否已经有一些内置的解决方案?我在网上找不到任何确凿的信息。
最佳答案
一种方法是使用-profile
命令行参数。运行程序后,它将创建文件 trace.log,您可以在其中找到每个函数的运行时间。这当然会减慢您的程序,因为编译器会将时间计数代码插入到您的每个函数中。此方法用于查找功能的相对速度,以确定您应该优化哪些功能,以最小的努力提高应用程序速度。
第二个选项是使用 std.datetime.StopWatch类(class)。请参阅链接中的示例。
或者更适合的可能是直接使用 std.datetime.benchmark功能。
不要忘记:
- 在进行基准测试时,使用这些 dmd 编译器标志来实现最大优化
-release -O -inline -noboundscheck
。 - 永远不要对调试构建进行基准测试。
- 确保您不在基准测试函数内调用任何库代码 - 您将对库实现的性能而不是您自己的代码进行基准测试。
关于performance - 测量 D 语言的执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17856567/