Google App Engine. Как улучшить время JVM при холодном запуске? - PullRequest
4 голосов
/ 17 марта 2010

Я не новичок в улучшении своего времени холодного старта, я провел много часов, пробуя разные вещи. Я хотел бы, если возможно, узнать точно , что делает Google App Engine во время холодного запуска.

У меня есть оператор журнала, как описано здесь http://code.google.com/intl/nl/appengine/kb/java.html#performance, чтобы показать, когда мой код впервые получает контроль.

У меня есть два приложения, которые я тестировал, одно простое, и мой код сначала получает контроль примерно через 1 секунду.

В другом есть много файлов и прочего, и мой код сначала получает контроль примерно через 2 секунды. Этот не использует больше библиотек, чем другой, однако в нем гораздо больше классов jsps и java.

Может ли просто иметь больше классов java и jsp вызвать медленный холодный запуск, даже если класс не используется?

Ответы [ 2 ]

2 голосов
/ 01 мая 2010

Я нашел эту статью полезной: http://www.answercow.com/2010/03/google-app-engine-cold-start-guide-for.html

2 голосов
/ 17 марта 2010

Эта статья довольно хороший ресурс. Чуть позже после записи лога часть:

Как я могу ускорить загрузку запросов?

Вот несколько предложений:

  1. Выполняйте инициализацию приложения лениво, а не с готовностью, чтобы не все происходило в одном запросе.
  2. Обмен дорогостоящей инициализацией между JVM. Например, поместите данные, которые дороги для чтения или вычисления, в memcache, где они могут быть быстро прочитаны другими JVM во время запуска.
  3. Переместите инициализацию из запуска приложения во время сборки, где это целесообразно. Например, преобразуйте сложный файл данных в простой, быстро читаемый файл данных в процессе сборки.
  4. Используйте более тонкие зависимости. Например, предпочитайте библиотеку, оптимизированную для вашей задачи, а не большую библиотеку, которая выполняет очень тяжелую инициализацию.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...