我们致力于凭经验测量某些算法的运行时间(以检查其渐近行为)。我试图在实验前制定一套规则来“清理”我们的目标计算机。这并不是Agner Fog级别的真正性能。 ,但我仍然想从尽可能干净的机器开始(并尽可能保持恒定的开销)。到目前为止我已经:
- 禁用所有电源管理
- 禁用屏幕服务器(也许完全禁用 X?)
- 禁用网络
- 以单用户模式启动 [Kenneth Hoste]
- 多次运行实验(以消除偶然事件)
- 配置为以最大频率运行的频率调节 [二进制]
- ?
显然,多次重复实验会给我一些统计能力,但我仍然希望在尽可能干净的机器上进行此操作。
人们还知道哪些其他技巧可以在程序分析过程中保持机器稳定?这是一台 Linux 机器,如果“规则”是 Linux 特定的也没关系。
最佳答案
拔掉网络电缆,这样您的系统就不会在网络流量上花费时间。
在单用户模式下运行也有帮助,因为这样运行的服务就会减少,这可能会干扰您的测量。
在实验运行时远离系统,您所做的任何事情(登录、ssh 进入计算机、“cat”文件、运行“ls”等)都会影响测量结果。
但是,请务必认识到不存在稳定的测量,唯一确定的方法是多次运行实验,并使用正确的统计方法来报告性能。当您要比较实验之间的性能时,这一点变得尤为重要。
关于linux - 如何设置计算机用于受控实验分析算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13540963/