【问题标题】:How expensive it is to load the environment to run a Python script?加载环境以运行 Python 脚本有多昂贵?
【发布时间】:2011-09-19 21:58:51
【问题描述】:

我有一个每天运行数千次的后台 python 脚本。我只是用python foo.py 运行它。脚本本身进行一些导入(解析库和 sqlalchemy),然后建立数据库连接,进行解析并将数据保存到 db。

我想知道每次运行脚本时加载 python 环境是否会增加很多开销?

我可以让脚本启动一次,它会有一个轮询循环来查看它是否应该做某事,但想澄清这样做是值得的。

有什么意见吗?

【问题讨论】:

    标签: python environment overhead


    【解决方案1】:

    当然它会增加很多开销,而且使用内置的 poll 或 select() 会更环保(尽管可以忽略不计);但是你必须有一个看门狗来查看它是否崩溃,或者使用 inittab 中的 respawn。只要服务器负载正常,就可能不值得付出努力。


    忘了提一下,当您的脚本作为守护程序运行时,在 cron 作业中不明显的内存泄漏可能会成为吞噬服务器的怪物。你会想在头一两个小时仔细观察它,看看它是否在增长。

    【讨论】:

    • 此外,必须计算分叉进程的操作系统开销。旧式轮询循环效率更高。
    • 类似的论点适用于使用 CGI 与 FCGI 或 WSGI。如果它对您来说运行得足够快,那么开销的差异并不重要 - 尽管您可以减少二氧化碳排放量:) 如果您受 I/O 限制,它可能确实没有什么区别
    猜你喜欢
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 2010-10-08
    相关资源
    最近更新 更多