GWT Requestfactory предложения производительности
Я наблюдаю очень плохую производительность при использовании GWT requestfactory. Например, запрос, который занимает у моего сервисного уровня 2 секунды до полного заполнения, занимает 20 секунд GWT для сериализации. Мой сервис возвращает ~ 100, что будет EntityProxies. Каждый из этих объектов имеет то, что станет 4 ValueProxies и еще 2 EntityProxies (100 корневых EntityProxies уровня, 400 ValueProxies и 200 дополнительных EntityProxies). Тем не менее, я вижу такое же снижение производительности в 10 раз на гораздо меньших наборах данных.
Пример фрагмента журнала:
D 2012-10-18 22:42:39.546 ServiceLayerDecorator invoke: Inoking service layer took 2265 ms
D 2012-10-18 22:42:58.957 RequestFactoryServlet doPost: Entire request took 22870 ms
Я добавил код профилирования вServiceLayerDecorator#invoke
метод и завернул весь сервлет в таймер. Я профилировал сервис самостоятельно, и он действительно возвращает результаты в ~ 2 с.
Я использую GWT 2.4, но проверил это на GWT 2.5rc1 и GWT 2.5rc2. Мой бэкэнд на GAE, но я не думаю, что это играет роль здесь.
я нашелэта ошибка поданный против 2.4, который, кажется, очень связан. Я вручную применил патч отэта группа Google без удачи.
Мои доменные модели выглядят так:
class Trip {
protected Address origin; // becomes ValueProxy
protected Address destination; becomes ValueProxy
protected Set<TripPassenger> tripPassengers; // Set of ValueProxies
}
class TripPassenger {
protected Passenger passenger;
}
class Passenger {
protected Account account;
}
Мой вопрос:
Правильно ли я профилировал код и изолировал проблему с сериализацией GWT?Могу ли я сделать что-то неправильно, что может вызвать такое поведение?Как я могу лучше профилировать код сериализации GWT, чтобы попытаться выяснить причину?