gpt4 book ai didi

python - 导入库时出现延迟的原因是什么?

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

我遇到一个问题,即执行 python 脚本有时需要更长的时间才能导入库。如果我最近没有执行该脚本或者从不同的服务器运行该脚本,就会发生这种情况。第一次延迟后,导入时间变得更快。我想知道是什么导致了导入速度缓慢以及是否有任何方法可以阻止它?

import time
s_time = time.time()
import sys,re,os,logging,signal
from argparse import ArgumentParser
print('Internal Import Time: {}'.format(time.time() - s_time))
s_time = time.time()
from backtrace import Backtrace,BacktraceSet
from report import Report
from core import Core
from burtapi import BurtAPI
print('External Import Time: {}'.format(time.time() - s_time))

在此示例中,backtrace、report、core 和 burtapi 是我创建的库。

[name@server1 tool]$ ./tool --python
Internal Import Time: 2.8281359672546387
External Import Time: 13.053943157196045
Enter/Paste your content. Ctrl-D to save it.
^CYou pressed Ctrl+C!
[name@server1 tool]$ ./tool --python
Internal Import Time: 0.12279081344604492
External Import Time: 0.6948020458221436
Enter/Paste your content. Ctrl-D to save it.
^CYou pressed Ctrl+C!

ssh to different server (with same storage mount)

[name@server2 tool]$ ./tool --python
Internal Import Time: 3.0217390060424805
External Import Time: 13.151482105255127
Enter/Paste your content. Ctrl-D to save it.
^CYou pressed Ctrl+C!
[name@server2 tool]$

./tool 是一个调用 python3/path/to/script.py

的 bash 脚本

最佳答案

这里还有更多因素,但主要有三个:

首先 - 导入模块需要在系统上查找模块,这需要从磁盘读取数据。

第二 - 如果这些模块内部发生任何更改,解释器将需要对它们进行咬编译。

最后但并非最不重要的一点是,当解释器开始导入它们时,模块本身可能包含需要执行的指令/代码,这些指令/代码可能会执行大量操作。假设这些模块之一连接到数据库或必须通过大型哈希表进行过滤......

编辑:我应该指出,这些都是假设,很难说出您的情况到底发生了什么,但在大多数情况下,这就是正在发生的情况。

关于python - 导入库时出现延迟的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44435729/

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