在 CGI 中使用之前加载模块是否有任何速度优势?
Are there any speed benefits when loading modules just before usage in CGI?
我正在 Python 中使用 CGI 构建 Web 应用程序。由于脚本 foo.py
每次在 mypage.com/foo.py
调用时都需要加载我正在寻找一些方法来加速初始化。
使用 Django 或 web.py 等框架时,我总是在文件顶部加载模块。假设我正在导入函数 func
并在我的请求处理程序中使用它:
from module import func
# ...
def request_handler(user_input):
if user_input == 1:
func()
在这种情况下,当有人加载某些页面而不是加载完整的 python 文件时,框架将只调用 request_handler
。在 CGI 中,每次访问 URL 时都会加载脚本,这意味着每次也会从 module
导入 func
。由于 func
不会总是被调用,因为 user_input
可能与 1
的值不同,我选择在必要时导入它,如下所示:
if user_input == 1:
from module import func
func()
我是在提高性能还是一样?
是的,如果 module
不会以其他方式导入,则您的速度略有提高。
我正在 Python 中使用 CGI 构建 Web 应用程序。由于脚本 foo.py
每次在 mypage.com/foo.py
调用时都需要加载我正在寻找一些方法来加速初始化。
使用 Django 或 web.py 等框架时,我总是在文件顶部加载模块。假设我正在导入函数 func
并在我的请求处理程序中使用它:
from module import func
# ...
def request_handler(user_input):
if user_input == 1:
func()
在这种情况下,当有人加载某些页面而不是加载完整的 python 文件时,框架将只调用 request_handler
。在 CGI 中,每次访问 URL 时都会加载脚本,这意味着每次也会从 module
导入 func
。由于 func
不会总是被调用,因为 user_input
可能与 1
的值不同,我选择在必要时导入它,如下所示:
if user_input == 1:
from module import func
func()
我是在提高性能还是一样?
是的,如果 module
不会以其他方式导入,则您的速度略有提高。