Skip to main content
 首页 » 编程设计

python之记录导入模块所花费的时间

2025年05月04日13lhb25

有关背景信息:转到 HERE !

我有一个非常大的模块,它从互联网、其他内置脚本等获取东西。根据网络速度、内存等因素,然后编译列表和类似的东西,导入时间可能在 25秒和 90 秒。我使用以下代码来跟踪模块导入所需的时间:

def importTime(): 
    import time 
    startTime = time.time() 
    import tms              # This is the name of my module 
    print("Time taken {}".format(time.time() - startTime))) 

当我运行这个时:

>>> importTime() 
Loading Module. This may take up to 60 seconds. # This is my module output 
Time taken 31.49 

这就是我想要发生的事情:

>>> import tms 
Loading Module. This may take up to 60 seconds. 
Time taken: 31.49 seconds 

这是我的问题。这是我在导入模块之前必须定义的函数。我需要做的是让我的模块能够在启动时执行此操作。我看过这个 question ,但这是同一个概念。有人有什么想法吗?

请您参考如下方法:

您可以重载 __import__导入模块时调用的函数:

import time 
import __builtin__ 
 
# save the original __import__ function 
original_import = __builtin__.__import__ 
 
def custom_import(name, globals=None, locals=None, fromlist=None, level=-1): 
  startTime = time.time() 
 
  # call original __import__ function 
  result = original_import(name, globals, locals, fromlist, level) 
 
  endTime = time.time() 
  print('Time used to load module {}: {}'.format(name, endTime - startTime)) 
 
  # return result 
  return result 
 
# replace builtin __import__ function 
__builtin__.__import__ = custom_import