我有一个脚本,它执行大量的计算工作,并且非常耗费资源。当我运行脚本(通常需要几个小时才能完成)时,我几乎无法使用我的机器,因为它会停止运行。
我记得在VB编程的旧时代,有一个yield()
语句,它强制一个内存占用例程很好并将一些CPU周期交给其他进程。
我的问题是,Python中是否有类似的构造允许我编写与我的机器上的其他进程很好地匹配的脚本?
下面的典型脚本....
# import required libs
if __name__ == '__main__':
init()
do_some_expensive_calcs() # need to periodically 'yield' to other processes here - how do I do it?
答案 0 :(得分:1)
我认为您也可以使用操作系统包在脚本本身内执行此操作:
import os
os.nice(100)
答案 1 :(得分:0)
如果您使用的是* ix机器,请很好地启动您的程序:
nice ./prog
您还可以在程序运行时“重新设置”该程序,例如与top
。
我总是值得考虑的另一个策略是改进算法。