如何使用tkinter python.after测量fps(经过时间)?

时间:2017-01-17 21:41:36

标签: python tkinter frame-rate

我有一个循环的功能,我想测量经历一次旋转所需的时间,包括我添加tkinter的时间。我将这些行添加到循环函数的底部。

我希望看到基于.after值的时间量变化,但无论我将其设置为25还是5025,我都会获得相同的基本结果。我还尝试将time2=语句放在循环的开头,然后还交换print和time2=语句位置。

我在不同位置得到略有不同的结果,但它们似乎都没有显示.after值的增加时间,尽管我可以清楚地看到(基于其余代码的作用)时间是添加。

所以,我显然有一个“测量”问题。是否有一个我无法掌握的重要知识?

print time.clock() - time2[0]     
time2[0] = time.clock()    
root.after(5025, myloop)

1 个答案:

答案 0 :(得分:2)

根据您上面的评论,您可以实现经过时间的功能:

import time

def get_elapsed_time()
    startTime = time.time()
    my_loop()
    endTime = time.time()

    elapsedTime = endTime - startTime
    print elapsedTime

time.time()表示自Linux 纪元以来的时间流逝,即1970年1月1日 - 请在此处阅读更多内容:https://en.wikipedia.org/wiki/Unix_time

因此,上面的函数会将startTime设置为“Linux Universal Time”,循环执行my_loop()函数,最后将endTime设置为“Linux”世界时“。 endTimestartTime之间的差异将表示调用get_elapsed_time()函数和结束函数之间的时间间隔,这将在my_loop()函数结束后的微秒内完成。实际上,这将打印my_loop()函数运行的时间。