我在Google App Engine上运行基于Java的HDR应用程序Appstats。现在,我对实际的App Engine请求日志和Appstats日志之间的时间值差异感到有些困惑。这些时间之间似乎有很大的差异。为了解释我的意思,我带了一些截图。它们都来自同一个请求。
这是来自App Engine请求日志:
这个是来自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毫秒)?为什么同一个请求有两个不同的时间戳?
Thanksalot!
答案 0 :(得分:0)
appstats被挂钩到你的代码中,在你的代码(appstats)被调用之前,以及appstats退出之后还有一段时间。请记住,appengine不会流向客户端,但所有输出都是某种缓冲区,然后传递给appengine基础设施进行传递。
请求的时间表类似于
看一下平均多少1和4会很有趣,这可能取决于运行时间。
哦,appstats本身会有一些开销,不会被appstats测量,包括启动和最后清理,这有助于1和2的时间。