Почему время запроса в журнале Google App Engine отличается от времени в Appstats?

Я запускаю Appstats в своем приложении HDR на основе Java в Google App Engine. Прямо сейчас я несколько озадачен разницей во временном значении между фактическим журналом запросов App Engine и журналами Appstats. Похоже, что между этими временами есть существенный сдвиг. Чтобы объяснить, что я имею в виду, я привел несколько скриншотов. Оба они из одного запроса.

Это из журнала запросов App Engine:

Журнал запросов App Engine

И это для того же запроса от Appstats:

Хронология Appstats

Вот список измерений, которые мне удалось извлечь:

Log Timestamp           10:10:33.156
Log "Total"                    147ms
Log "ms"                       147ms
Log "cpu_ms"                    86ms

Appstats Timestamp      10:10:33.072
Appstats "Grand Total"          39ms
Appstats "real"                 39ms
Appstats "RPC Total"            20ms
Appstats "api"                   0ms
Appstats "overhead"              0ms

Как вы можете видеть, есть разница как в отметке времени запроса, так и во время выполнения:

Difference Log/AS Timestamps    84ms
Difference Log/AS Total        108ms (377%)

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

Почему Appstats сообщает, что мой запрос занял 39 мс, а журнал запросов GAE сообщает, что запрос занимал 3,8 раза (147 мс)? Почему один и тот же запрос имеет две разные временные метки?

Большое спасибо!

1 ответ

appstats подключается к вашему коду, пройдет некоторое время, прежде чем ваш код (appstats) будет вызван, а также после выхода appstats. Помните, appengine не передает поток на клиент, но все выходные данные передаются в какой-то буфер, а затем передаются в инфраструктуру appengine для доставки.

Сроки запроса будут примерно такими

  1. начало запроса (время начала вы видите в логах)
  2. начало приложения покрыто кодом
  3. конец кода приложений
  4. окончательный ответ отправлен (общая продолжительность)

Было бы интересно посмотреть, сколько будет 1 и 4 в среднем, и это может зависеть от времени выполнения.

Да, и у самого appstats будут некоторые издержки, которые не будут измеряться appstats, включая запуск и очистку в конце, которые влияют на время в 1 и 2.

Другие вопросы по тегам