我根据Perl脚本多次迭代的标准进行了大量的文件搜索,似乎占用了100%的CPU时间.有没有办法控制我的脚本CPU利用率?我读到了一些关于在我的脚本中放入空睡眠周期的地方.但我不知道该怎么做.
Alo*_*lon 10
你可以降低由OS:windows或 linux分配的进程(Perl的)优先级
最低优先级的示例:
视窗
start /LOW perl <myscript>
Run Code Online (Sandbox Code Playgroud)
Linux的
nice +19 perl <myscript>
Run Code Online (Sandbox Code Playgroud)
提高CPU利用率的一个好方法是使用更好的算法.不要猜测代码在哪里花费所有时间:使用分析器.Devel::NYTProf是一个很棒的工具.
一定要记住阿姆达尔的法律.例如,假设您的程序的一部分使用二次算法,并且您可以使用线性算法替换它.万岁!但是,如果所讨论的代码仅占总运行时间的5%,那么您最英勇的努力不会带来微不足道的5%改进.使用分析器确定在其他地方是否有更高速度的机会.
您没有告诉我们您要搜索的是什么,即使是最知名的算法也可能是CPU密集型的.考虑到您的操作系统的调度程序已经过编写,手动调整,测试和重写,以便有效地使用系统资源.是的,有些任务需要专门的调度程序,但这种情况很少见 - 甚至不太可能,因为你使用的是Perl.
不要把它看作是你的代码占用CPU的坏迹象.您可能会惊讶地发现,性能至关重要的实时系统中最难的挑战之一就是让CPU保持忙碌而不是空闲.
| 归档时间: |
|
| 查看次数: |
11310 次 |
| 最近记录: |