使用 Python 的实际任意指令浪费周期
Wasting cycles with actual arbitrary instructions with Python
我一直在做一个项目,在这个项目中我需要创建一个 Python 应用程序,在这个阶段会浪费指令和周期。通常当'cycle wasting'表示等待或休眠;但我想以不同的方式来做。即使外部程序循环的迭代周期相当长,也应该有一些浪费周期的伪指令。
举个例子(典型的做法):
while(True):
#..do simple thing..
time.sleep(0.000001)
我想做的事情:
while(True):
#..do complex instructions..
time.sleep(0.2)
在第一个 'typical' 示例中,我可以通过简单地调整睡眠时间来实现自定义 CPU 负载,例如 25% 或 100%。我希望能够对第二个代码做同样的事情,其中周期是一个相当高的值并且是恒定的,但指令是复杂和动态的。
请记住,我必须将此作为 Python 应用程序执行,而不是作为从 shell.
运行的 bash 脚本执行
有办法实现吗?任何帮助将不胜感激。
提前致谢。
注意:如有标签错误敬请见谅
编辑: 使用 Python 2.7
编辑: 应用要求应该有周期性休眠,如time.sleep(2), time.sleep(0.2)。这是我们的一种限制。
没有考虑最好的方法,只是尝试了一些,在我的笔记本电脑 i5 上它是 100% CPU。
我选择随机矩阵生成和乘积:
def cpu_load():
import numpy as np
while True:
a = np.random.random([1000, 1000])
b = np.random.random([1000, 1000])
c = np.mean(a*b)
如果我正确理解了你的问题,并且进一步构建了 pltrdy 的代码,我想你想要这样的东西:
def cpu_load(treshold):
import numpy as np
import time
start = time.time()
while time.time() - start < treshold:
a = np.random.random([1000, 1000])
b = np.random.random([1000, 1000])
c = np.mean(a*b)
如果您使用的是 Linux 系统,则可以执行此操作。
import os
os.nice(20)
这将增加流程的友好度。因此减少 CPU 消耗。
Here 是文档。
我一直在做一个项目,在这个项目中我需要创建一个 Python 应用程序,在这个阶段会浪费指令和周期。通常当'cycle wasting'表示等待或休眠;但我想以不同的方式来做。即使外部程序循环的迭代周期相当长,也应该有一些浪费周期的伪指令。
举个例子(典型的做法):
while(True):
#..do simple thing..
time.sleep(0.000001)
我想做的事情:
while(True):
#..do complex instructions..
time.sleep(0.2)
在第一个 'typical' 示例中,我可以通过简单地调整睡眠时间来实现自定义 CPU 负载,例如 25% 或 100%。我希望能够对第二个代码做同样的事情,其中周期是一个相当高的值并且是恒定的,但指令是复杂和动态的。
请记住,我必须将此作为 Python 应用程序执行,而不是作为从 shell.
运行的 bash 脚本执行有办法实现吗?任何帮助将不胜感激。
提前致谢。
注意:如有标签错误敬请见谅
编辑: 使用 Python 2.7
编辑: 应用要求应该有周期性休眠,如time.sleep(2), time.sleep(0.2)。这是我们的一种限制。
没有考虑最好的方法,只是尝试了一些,在我的笔记本电脑 i5 上它是 100% CPU。 我选择随机矩阵生成和乘积:
def cpu_load():
import numpy as np
while True:
a = np.random.random([1000, 1000])
b = np.random.random([1000, 1000])
c = np.mean(a*b)
如果我正确理解了你的问题,并且进一步构建了 pltrdy 的代码,我想你想要这样的东西:
def cpu_load(treshold):
import numpy as np
import time
start = time.time()
while time.time() - start < treshold:
a = np.random.random([1000, 1000])
b = np.random.random([1000, 1000])
c = np.mean(a*b)
如果您使用的是 Linux 系统,则可以执行此操作。
import os
os.nice(20)
这将增加流程的友好度。因此减少 CPU 消耗。
Here 是文档。