Как именно происходит запрос Python (Django)?это должно повторно проанализировать всю кодовую базу? - PullRequest
2 голосов
/ 11 июня 2010

При использовании скриптового языка, такого как python (или php), вещи не компилируются в байт-код, как в .net или java.

Значит ли это, что при каждом запросе он должен проходить весьприложение и разобрать / скомпилировать его?Или хотя бы весь код, необходимый для данного стека вызовов?

Ответы [ 2 ]

5 голосов
/ 11 июня 2010

С языком сценариев, таким как python (или php), вещи не компилируются в байт-код, как в .net или java.

Неправильно: все, что вы получаете import в Pythonскомпилирован в байт-код (и сохранен в виде .pyc файлов, если вы можете записать в каталог, содержащий импортируемый источник - стандартные библиотеки & c обычно предварительно скомпилированы, в зависимости, конечно, от вариантов установки).Просто сделайте основной сценарий коротким и простым (импортирующим какой-либо модуль и вызывающим в нем функцию), и вы будете использовать повсеместно скомпилированный байт-код.(Компилятор Python спроектирован так, чтобы быть чрезвычайно быстрым - с последствиями, в том числе и из-за того, что он не делает много других разумных оптимизаций - но вообще избегать его все же быстрее; -).

3 голосов
/ 11 июня 2010

При работе в качестве CGI, да, весь проект должен быть загружен для каждого запроса. FastCGI и mod_wsgi хранят проект в памяти и общаются с ним через сокет.

...