python(django)请求究竟是如何发生的?它是否必须重新解析所有代码库?

时间:2010-06-10 21:32:14

标签: python django pipeline request-pipeline

使用像python(或php)这样的脚本语言,事情不会像.net或java那样编译成字节码。

这是否意味着在每个请求中,它必须遍历整个应用程序并解析/编译它?或者至少是给定调用堆栈所需的所有代码?

2 个答案:

答案 0 :(得分:5)

  

使用像python这样的脚本语言   (或PHP),事情没有编译下来   字节码,如.net或java。

错误:如果您可以写入包含您要导入的源的目录,则Python中import的所有内容都会被编译为字节码(并保存为.pyc个文件 - 标准库& c是一般预编译,当然取决于安装选择)。只需保持主脚本简短(导入一些模块并调用其中的函数),您将始终使用编译的字节码。 (Python的编译器设计得非常快 - 其含义包括它没有做很多其他合理的优化 - 但完全避免它仍然更快; - )。

答案 1 :(得分:3)

当以CGI身份运行时,是的,需要为每个请求加载整个项目。 FastCGI和mod_wsgi将项目保存在内存中并通过套接字与它通信。