在IDE和命令行中的rust性能



我是铁锈的初学者。我用一个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。这正是我所期望的。

最新更新