【问题标题】:How do I run Python scripts persistently?如何持续运行 Python 脚本?
【发布时间】:2013-06-30 23:27:36
【问题描述】:

我是 Python 新手,我编写了一些命令行脚本来进行一些计算。在 Perl 中,我记得使用 PersistantPerl 通过持久运行 Perl 脚本来加速它们。

可以将其视为类似于 FastCGI 的东西,但用于命令行脚本。 PersistantPerl 总是保持解释器的副本在后台运行,因此每次运行脚本时都会受到启动惩罚。

在 Python 中是否有等效的工具,或者是否有其他策略可以避免因频繁运行相同的 Python 脚本而付出启动代价。

PersistenPerl

更新:

似乎有人偶然发现了同样的想法:

Reducing the Python startup time

但它看起来更像是一个 hack,而不是一个完整的解决方案。 有没有可以做到这一点的模块?

【问题讨论】:

  • 你测量过“启动惩罚”吗?它会影响你的工作吗?
  • 我从未听说过 Python 解释器有这样的功能;可能这种影响不足以证明这种努力是合理的。今天的操作系统无论如何都会将可执行文件的二进制文件保存在内存中(除非你没有足够的 RAM)。

标签: python performance


【解决方案1】:

与保持 Python 解释器运行(如果可能的话)相比,可能产生更大影响的一件事是确保 Python 不必在每次运行脚本时都对其进行编译。

实现这一目标的最简单方法是创建一个小型启动脚本,imports 是您的实际脚本。导入的脚本保存为预编译的.pyc 文件,因此可以更快地重新运行(就启动时间而言)。

【讨论】:

  • 听起来很有趣。我试试看。
  • @GeneQ 试试this question。请张贴结果。我也想知道哪个是目前最好的方法。我正要问同样的问题。
【解决方案2】:

如果这确实是个大问题,您可以将脚本转换为作为守护程序和/或 Web 服务运行,由命令行工具调用?

见:

https://pypi.python.org/pypi/python-daemon/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-26
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 2023-03-07
    • 2023-02-08
    相关资源
    最近更新 更多