gpt4 book ai didi

python - 是什么导致了这个 python 脚本执行时间的差异?

转载 作者:太空宇宙 更新时间:2023-11-03 15:20:32 24 4
gpt4 key购买 nike

我有一个简单的 python 脚本,但是它在一段时间内第一次运行时显示的执行时间要长得多。如果我在它快了几个因素后立即执行它。

此脚本在私有(private)测试服务器上运行,上面没有运行任何应用程序,因此我不认为缺少系统资源是导致它运行速度变慢的原因。

#!/usr/bin/env python
import redis,time,sys
print "hello"


$ time python test.py

real 0m0.149s
user 0m0.072s
sys 0m0.076s

$ time python test.py

real 0m0.051s
user 0m0.020s
sys 0m0.028s

谁能解释执行时间的差异?

我对包含外部脚本的 php 脚本进行了类似的测试,并且该脚本的执行时间差异可以忽略不计。

这种差异会影响我的应用程序,因为此类脚本会被多次调用并导致响应在 70 毫秒到 450 毫秒之间交付。

最佳答案

可能有几个因素。我现在能想到的两个:

  1. 初始字节编译。

    Python将编译后的字节码缓存在.pyc文件中,第一次运行时需要创建该文件,后续运行只需要验证字节码缓存上的时间戳即可。

  2. 磁盘缓存

    Python 解释器,您直接引用的 3 个库,那些 库使用的任何东西,都需要从磁盘加载,除了脚本和它的字节码缓存。操作系统缓存此类文件以加快访问速度。

    如果您在同一个系统上运行其他东西,这些文件将从缓存中清除并需要重新加载。

    这同样适用于目录列表;在模块搜索路径中查找模块的位置的检查和字节码缓存的测试都由缓存的目录信息加速。

如果这样的启动时间会影响您的应用程序,请考虑创建一个守护进程来为这些任务提供服务。 RPC 调用(使用套接字或本地主机网络连接)几乎总是会超过这些启动成本。消息队列可以为您提供此类守护进程的架构。

关于python - 是什么导致了这个 python 脚本执行时间的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15782500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com