2014-02-10 4 views
0

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

Это один из App журнала запроса Двигатель:

App Engine Request Log

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

Appstats Timeline

Вот список измерений I был получен:

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.8x (147 мс)? Почему у одного и того же запроса есть две разные метки времени?

Thanksalot!

ответ

0

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

График время запроса будет что-то вроде

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

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

О и Appstats сама будет иметь некоторые накладные расходы, которые не будут измеренную Appstats, в том числе запуск и очистку в конце, которые способствуют тому времени в 1 и 2.

+0

Привет Тим! Спасибо, что ответили так быстро. Я понимаю, что при каждом запросе будут существовать некоторые «наложенные» накладные расходы, прежде чем Appstats сможет нанести удар. Забавно, что отметка времени Appstats находится до отметки времени журнала запросов, что предполагает, что временная метка журнала не является началом запроса ? – Holger

+0

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

+0

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