我有一个基于python / tornado构建的webapp。有时候(但并非总是如此!)起步非常慢。这是前10个最慢的电话:
358926 function calls (350348 primitive calls) in 7.933 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 7.941 7.941 /Users/ysimonson/Desktop/dailymuse/themuse/venv/src/oz/oz/__init__.py:133(initialize)
54/12 0.238 0.004 7.940 0.662 {__import__}
1 0.164 0.164 1.853 1.853 /Users/ysimonson/Desktop/dailymuse/themuse/venv/src/oz/oz/plugins/sqlalchemy/__init__.py:1(<module>)
1 0.001 0.001 1.842 1.842 ./themuse/common/__init__.py:1(<module>)
1 0.002 0.002 1.811 1.811 ./themuse/common/actions/__init__.py:1(<module>)
1 0.112 0.112 1.696 1.696 /Users/ysimonson/Desktop/dailymuse/themuse/venv/src/oz/oz/plugins/aws_cdn/__init__.py:1(<module>)
1 0.001 0.001 1.294 1.294 ./themuse/common/actions/analytics.py:1(<module>)
1 0.005 0.005 0.956 0.956 /Users/ysimonson/Desktop/dailymuse/themuse/venv/lib/python2.7/site-packages/sqlalchemy/__init__.py:9(<module>)
1 0.000 0.000 0.951 0.951 ./themuse/api_v1/__init__.py:1(<module>)
1 0.084 0.084 0.951 0.951 ./themuse/api_v1/api_v1_routes.py:1(<module>)
这个过程需要8秒钟才能启动。所有这些慢速调用都是导入,但大多数都非常简单 - 例如它是从__future__
导入的3个实例:
from __future__ import absolute_import, division, print_function, with_statement, unicode_literals
这里发生了什么?一些额外的信息:
autoreload
重新加载。我猜这是不相关的,因为它没有出现在探查器中,但也许它与autoreload
使用{{1}有某种关系}}?答案 0 :(得分:0)
尝试importlib.invalidate_caches()
尝试使模块查找缓存无效。您还可以考虑重新安装模块,看看是否会产生影响。