编写一个python脚本,该脚本;猪资源

编写一个python脚本,该脚本;猪资源,python,Python,我有一个脚本,它做了大量的计算工作,而且资源非常密集。当我运行脚本时(通常需要几个小时才能完成),我几乎无法使用我的机器,因为它会停下来 我记得在旧的VB编程时代,有一个yield()语句,它迫使占用内存的例程变得很好,并将一些CPU周期交给其他进程 我的问题是,Python中是否有类似的构造允许我编写脚本,与机器上的其他进程配合良好 下面是典型的脚本 # import required libs if __name__ == '__main__': init() do_som

我有一个脚本,它做了大量的计算工作,而且资源非常密集。当我运行脚本时(通常需要几个小时才能完成),我几乎无法使用我的机器,因为它会停下来

我记得在旧的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?

如果您在*ix机器上,请很好地启动您的程序:

nice ./prog
您也可以在程序运行时“重新启动”程序,例如使用
top


另一个我一直值得考虑的策略是改进算法。

如果您使用的是*ix机器,请很好地启动您的程序:

nice ./prog
您也可以在程序运行时“重新启动”程序,例如使用
top


我一直值得考虑的另一个策略是改进算法。

我认为您也可以通过操作系统包从脚本本身中执行此操作:

import os
os.nice(100)

我认为您也可以通过操作系统包从脚本本身中执行此操作:

import os
os.nice(100)

你可以做得很好:占用内存的进程的问题是,它们将所有内容都强制交换。如果这是发生在你身上的事情,那么释放CPU是没有帮助的。你可以做得很好:占用内存的进程的问题是,它们迫使所有东西都进行交换。如果这是发生在你身上的事情,那么释放CPU是没有帮助的。