App Engine - откуда берется дополнительная задержка? - PullRequest
0 голосов
/ 28 июня 2011

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

Например, в моем коде мое отладочное сообщение скажет, что мой код занял 58мс запустить. Но строка журнала покажет: / 421ms 130cpu_ms 20api_cpu_ms, показывая, что для возврата ответа потребовалось 421 мс.

Это типично для каждый запрос, это не связано с загрузкой запросов. Кроме того, я единственный человек, обращающийся к моему приложению прямо сейчас, и журналы не отображают значение pending_ms, так что это не потому, что он ожидает, пока другой запрос завершит обработку первым.

Что вызывает эту дополнительную задержку? Есть ли способ, как я могу это исправить?

EDIT: Я создал новый проект движка приложений с нуля, чтобы понять, не проблема ли это с моим приложением или что-то происходит с движком приложения. В новом проекте есть один сервлет, который отображается на /*, а код этого сервлета:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  long time = System.nanoTime();
  long x = 5;
  for (int i = 0; i < 1234567; i++) { x += i % 3 == 0 ? -i : i; }

  response.getWriter().write(request.getRequestURI().toLowerCase() + x);

  log.fine(getTime(time, "Total Time"));
}
static String getTime(long origtime, String id) {
  long diff = System.nanoTime() - origtime;
  long ret = diff / 100000;
  return id + ": " + ((double)ret / 10) + " ms";
}

РЕЗУЛЬТАТЫ: Даже с этим очень простым проектом движка приложения, я вижу то же самое поведение. Будет вывод журнала, например Total Time: 7.8 ms, но строка журнала покажет, что задержка значительно выше, чем 159ms 23cpu_ms. Это не всегда так плохо, иногда в строке журнала отображается задержка всего около 40 мс, а в отладочном сообщении время составляет около 7 мс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...