睡眠命令会降低性能吗?

时间:2018-01-25 11:14:34

标签: python linux cron sleep

我正在使用cron任务每2分钟安排一次工作。 由于在cron中没有更高的分辨率不到一分钟,我使python代码调用一个随机睡眠命令(在0-60之间),因此它会将执行时间分散到一分钟。

这对我来说很好。

我只是想知道如果我有一个睡眠时间为50秒的过程,它会在这50秒内保持记忆吗?它会导致性能问题吗?

2 个答案:

答案 0 :(得分:2)

毫无疑问,Python占用的内存和脚本的启动将在sleep期间保留在内存中,但由于您编写了代码,因此您可以组织内容以最小化睡眠结束前的内存使用情况。

至于cpu性能,我确信你在睡眠期间不会产生任何开销。

答案 1 :(得分:2)

至少会使用python进程的最小内存(如果没有换出,但交换也会降低你的计算机速度,使用磁盘,如果这是一个问题就应该避免)。在导入所需的模块之前,不确定是否可以在python中休眠。

但是,您可以在开始程序之前随意睡觉:

crontab -l
* 0 * * * (sleep $((RANDOM\%50)); python program.py)

此处需要\,因为%只是在cronjobs中表示换行符。您还可能需要在crontab顶部使用SHELL=/bin/bash来使$ RANDOM可用。如果不能选择SHELL,请更改为sleep $(($$\%50))以使用PID。