马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
time.sleep()函数可以或许停息当前线程的运行,实现延时功能,而window体系中使用time.sleep()函数停息当前线程并再次执行当前线程必要一定的时间(约莫在ms级)。
time.perf_counter()函数的返回值为体系已经运行的时间(float类型,单位:s),该时间具有非常高的分辨率和精度,因此可以丈量较短的持续时间,丈量范围包罗time.sleep()的休眠时间。
time.perf_counter_ns()函数则是将返回值改为了int类型,单位变为了ns。
不使用time.sleep()函数的运行情况:
点击查看代码- import time
- a = time.perf_counter_ns()
- # time.sleep(0.001)
- b = time.perf_counter_ns()
- print("a = %.4f" % (a/1000000), " ms\n", "b = %.4f" % (b/1000000), " ms", sep='')
- print("b-a = %.4f" % ((b-a)/1000000), "ms")
- 运行结果为:
- a = 960481122.4417 ms
- b = 960481122.4420 ms
- b-a = 0.0003 ms
复制代码 不使用time.sleep()函数时,多次尝试后,执行time.perf_counter_ns()函数所耗费的时间均10ms,多次尝试的结果均在10ms左右,这表明time.sleep()函数不能准确实现ms级的短时间延时。解决方法:不采用time.sleep()函数,直接通过多次循环实现延时
点击查看代码- import time
- a = time.perf_counter_ns()
- sleep(0.001)
- b = time.perf_counter_ns()
- print("a = %.4f" % (a/1000000), " ms\n", "b = %.4f" % (b/1000000), " ms", sep='')
- print("b-a = %.4f" % ((b-a)/1000000), "ms")
- 运行结果为:
- a = 960910032.3047 ms
- b = 960910046.0363 ms
- b-a = 13.7316 ms
复制代码 目标延时为100.01ms,实际延时为100.0161ms,相差 |