我是铁锈的初学者。我用一个main.rs和两个模块文件写了一个项目。开发环境是MacOS11.1上的CLion+IntellijRust插件。该程序是一个简单的CPU密集型计算任务。为了衡量它的性能,我使用了以下方法:
let timer = Instant::now();
task(); // the main function of the task
println!("{:.2?}", timer.elapsed());
当我在CLion的IDE中运行该程序时,它会打印大约500~700µs的运行持续时间。
然而,如果我在Mac终端的命令行中运行程序(~project/target/debug/project(,它会打印3~7ms。这是一个幅度的差异,这真的让我很困惑
如何解释这种差异?有什么建议可以提高命令行的性能吗?感谢您的评论。
运行
$cargo构建--发布
并执行将在中创建的二进制文件
~项目/目标/发布/项目
并与之进行比较。
此外,假设你已经在做了,但一定要多次测量并平均结果;你的电脑同时在做很多其他的事情,一项任务随时可能被中断。
我想我得到了答案。我错报了这个问题。实际上,我并没有在MacOS的终端中运行该程序,而是在CLion的终端窗口中运行,我认为它相当于操作系统的终端,但事实证明现在不是。如果我在真实操作系统的终端中运行调试版本,它会打印出相同的性能(500~700µs(。我还尝试了一个发布版本,它的打印速度大约为20~40µs。这正是我所期望的。