Я вижу некоторые загадочные временные поля в стандартных журналах движка приложений Google, которые меня интересуют:
2011-05-09 21:56:00.577 /whatever 200 211ms 775cpu_ms 589api_cpu_ms
0.1.0.1 - - [09/May/2011:21:56:00 -0700] "GET /whatever HTTP/1.1"
200 34 - "AppEngine-Google; (+http://code.google.com/appengine)"
"****.appspot.com" ms=212 cpu_ms=776 api_cpu_ms=589 cpm_usd=0.021713
queue_name=__cron task_name=dc4d411120bc75ea8bbea773d23eaecc
В частности: мс , cpu_ms , api_cpu_ms , каждый из которых два раза с немного разными значениями.
Кроме того, когда я сам регистрирую информацию о времени с простой структурой, приведенной ниже для запроса GET, он печатает несколько меньшее значение. В данном случае, в частности 182 мсек, против официального 775 .
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
long t0 = System.currentTimeMillis();
//Do the stuff
long t1 = System.currentTimeMillis();
log.info("Completed in " + (t1-t0) + " msecs.\n");
}
Итак, мои вопросы: почему разница между моим измеренным результатом времени и значением cpu_ms и как я могу его уменьшить? Каковы точные значения значений времени в полях журнала GAE?
Я хочу оптимизировать свой код, и я понял, основываясь на вышеупомянутых фактах, что большая часть времени (почти 600 мсек!) Не тратится непосредственно во время запроса doGet . (Я использую JPA, URLFetch, и это задача cron.)