用一个简单的Python脚本测试计算机处理速度

2024-04-23 08:47:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想制作一个简单的脚本来测试计算机执行它所需的时间。 我已经用PyQt构建了它,并用QTimer做了一个类似的循环。现在我需要“忙”的部分。我可以使用什么样的命令来让计算机稍微工作一点,这样我就可以得到所需的时间,并与其他计算机进行比较?

这是我的代码,以便您更好地理解:

self.Tempo = QtCore.QTimer(None)
self.Cron = QtCore.QTime(0,0,0,0)

def begin():
    self.Cron.start()
    self.Tempo.singleShot(999, update)       
def update():
    if self.lcdNumber.value() == 10:
        finish()                
    else:
        self.lcdNumber.display(self.lcdNumber.value()+1)
        #Here I want to make some processing stuff            
        self.Tempo.singleShot(999, update)
def finish():
    print("end")
    took = self.Cron.elapsed() / 1000
    print("took: {0} seconds" .format(str(took)))
    self.lcdNumber_2.display(took)

Tags: selfvaluedef计算机display时间updatecron
3条回答

通常,您可以通过一个循环来完成一些简单的工作,例如:

lst = []
for i in range(1000000):
    lst.append('x')

您可以在循环中执行任何复杂的计算问题:

  • 计算某个大数的阶乘(易于实现)
  • 计算链SHA1 hash 100000次(非常容易实现)
  • 反转大矩阵(不容易实现)
  • 。。。
  • 等等

其中一些问题使用CPU(factorial,SHA1),另一些使用CPU和内存(matrix invert)。所以,首先你需要决定,你想基准计算机的哪个部分。

您可以添加字符串,而不只是将某个元素附加到列表中。字符串连接越大代价就越高,这应该会测试内存性能,我猜。

test = "a test string"
for i in range(your_value):        # it takes forever, so choose this value wisely!
    if len(test) < 200000000:      # somewhere above this limit I get errors
        test += test
    else:
        test = test[0:len(test)/2] # if the string gets too long just cut it.

相关问题 更多 >