linux - 如何设置计算机用于受控实验分析算法?

标签 linux performance profiling

我们致力于凭经验测量某些算法的运行时间(以检查其渐近行为)。我试图在实验前制定一套规则来“清理”我们的目标计算机。这并不是Agner Fog级别的真正性能。 ,但我仍然想从尽可能干净的机器开始(并尽可能保持恒定的开销)。到目前为止我已经:

  • 禁用所有电源管理
  • 禁用屏幕服务器(也许完全禁用 X?)
  • 禁用网络
  • 以单用户模式启动 [Kenneth Hoste]
  • 多次运行实验(以消除偶然事件)
  • 配置为以最大频率运行的频率调节 [二进制]

显然,多次重复实验会给我一些统计能力,但我仍然希望在尽可能干净的机器上进行此操作。

人们还知道哪些其他技巧可以在程序分析过程中保持机器稳定?这是一台 Linux 机器,如果“规则”是 Linux 特定的也没关系。

最佳答案

拔掉网络电缆,这样您的系统就不会在网络流量上花费时间。

在单用户模式下运行也有帮助,因为这样运行的服务就会减少,这可能会干扰您的测量。

在实验运行时远离系统,您所做的任何事情(登录、ssh 进入计算机、“cat”文件、运行“ls”等)都会影响测量结果。

但是,请务必认识到不存在稳定的测量,唯一确定的方法是多次运行实验,并使用正确的统计方法来报告性能。当您要比较实验之间的性能时,这一点变得尤为重要。

关于linux - 如何设置计算机用于受控实验分析算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13540963/

相关文章:

linux - 进程锁定的文件的未定义时间戳

c++ - mysql连接器的使用方法

linux - 脚本 bash Linux 找不到错误

profiling - 是否有相当于 Python 的 cProfile 的 Julia 分析器?

php - PHP 的 'profiler with visualization' 和 `full backtrace visualization` ?

html - 'Server Issued an error response'(退出状态= 8)在wget中是什么意思?

windows-7 - IIS 7.5 (Windows 7) 下的 ASP.NET 网站运行速度极慢

javascript - 网页上的资源使用

performance - 为什么这段代码不是常数空间?

c++ - 有没有办法在 C++ 函数中获取函数名?