2013-10-08 5 views
0

Я создаю веб-приложение, используя GAE.GAE: помещает все обработчики в main.py, чтобы сделать мое приложение медленным?

Я делал некоторые исследования по моей собственной на GAE структуры питона проекта,

и выяснили, что не существует множество тенденция о том, как разместить свои обработчики в рамках проекта.

В настоящее время, я ставлю все обработчики (контроллеры) в main.py,

и сделать все URLs (/.*) быть направлены на main.application.

Будет ли это делать приложение медленнее?

Спасибо!

ответ

1

В общем случае это не замедлит работу вашего приложения, однако это может потенциально замедлить время запуска вашего экземпляра, но, как правило, это не проблема, если у вас нет очень сложных приложений.

Время запуска экземпляра вступает в игру каждый раз, когда GAE запускает новый экземпляр для вас. Например, если ваше приложение не используется в течение длительного периода времени, и вы запускаете его один раз в течение длительного времени или, например, если ваше приложение очень занято и ему нужен новый экземпляр для обработки нагрузки.

python загружает ваши модули по мере необходимости. Поэтому, если вы запустите экземпляр, и запрос перейдет на main.py, то main.py и все связанные с ним модули будут загружены. Если ваше приложение велико, это может занять несколько секунд. Скажем, например, для загрузки каждого модуля в приложение требуется 6 секунд. Это 6 секунд ожидания для тех, кто выдает этот запрос. Последующие запросы к этому загруженному экземпляру будут быстрыми.

Можно разбить обработчики на отдельные модули. Если обработчик для \ a требует очень мало кода, то \ a в отдельном файле уменьшит время отклика для \ a. Но когда вы загружаете \ b, который имеет все остальную часть кода, потребуется некоторое время для загрузки. Таким образом, можно взять этот 6-секундный груз и потенциально разбить его на несколько запросов, которые могут занять 2 секунды.

Этот тип оптимизации действительно зависит от библиотек, которые необходимо загрузить с каждым запросом. Обычно вы хотите сделать это позже, когда сталкиваетесь с проблемами, а не разрабатываете свой макет для этой цели спереди, так как это довольно сложно предсказать.

Запросы на разминку приложений App Engine также помогают решить эту проблему.

1

Нет, это не влияет на скорость. Ваш код должен быть загружен в любом случае, поэтому не имеет значения, все ли в одном файле или нет. Это, конечно, сделает файл более сложным, но это ваша проблема, а не GAE.

 Смежные вопросы

  • Нет связанных вопросов^_^