Время отклика AppEngine медленное - PullRequest
1 голос
/ 07 июня 2011

Я использую модифицированную версию примера TaskCloud, чтобы попытаться прочитать / записать свои собственные данные.

Во время тестирования развернутой версии я заметил, что время отклика в обоих направлениях низкое.

С моего устройства Android я получил ответ 100 мс на appspot.com. Я изменил приложение AppEngine, чтобы ничего не делать (панель инструментов Google показывает незначительную среднюю задержку.

Проблема в том, что для клиента HttpClient требуется время .execute (post) около 3 секунд. (Это время, когда экземпляр уже загружен)

Любые предложения будут с благодарностью.

РЕДАКТИРОВАТЬ : я смотрел видео Google I / O, показывающее приложение CloudTasks для Android-AppEngine, и вы можете видеть, что обновление списка (один вызов AppEngine) занимает около 3 секунд. Что ж. Парень что-то говорит о производительности, которую я не получил полностью (отладчики работают с обоих концов?)

Видео: http://www.youtube.com/watch?v=M7SxNNC429U&feature=related Время размещения: 0: 46: 45

Я буду продолжать расследование ... Спасибо за вашу помощь.

РЕДАКТИРОВАТЬ 2 : Вернуться к этой проблеме ...

Я использовал анализатор пакетов акул, чтобы выяснить, что происходит. Некоторое время тратится на согласование SSL-соединения для каждого вызова сервера. Использование http (и ACSID) быстрее, чем https (и SACSID).

new DefaultHttpClient () и new HttpPost () используются для каждого вызова сервера.

РЕДАКТИРОВАТЬ 3 :

Снова просматривая журналы сниффера, перед фактическим POST задержка составляет почти 2 секунды.

Я также обнаружил, что проблема существует с Android 2.2 (все версии), но решена с Android 2.3

РЕДАКТИРОВАТЬ 4 : Это было решено. Пожалуйста, смотрите мой ответ ниже.

Ответы [ 3 ]

1 голос
/ 07 июня 2011

Сложно ответить на ваш вопрос, так как никаких подробностей о вашем приложении не предоставлено. В любом случае вы можете попробовать использовать appstats tool , предоставленный Google, для анализа узкого места.

1 голос
/ 15 октября 2011

После использования анализатора Акулы я смог понять точную проблему и нашел ответ в этом вопросе .

Я воспользовался комментарием Людвикаса Букиса и решил проблемуиспользуя предложенную строку:

post.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
0 голосов
/ 07 июня 2011

Часто первый вызов вашего приложения GAE занимает больше времени, чем последующие вызовы. Вы должны ознакомиться с запросами на загрузку и разогрев, а также с тем, как GAE обрабатывает экземпляры вашего приложения: http://code.google.com/intl/de-DE/appengine/docs/adminconsole/instances.html

Некоторые вещи, которые вы также можете попробовать:

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