GWT Requestfactory sugestões de desempenho

Estou observando um desempenho muito ruim ao usar o requestfactory do GWT. Por exemplo, uma solicitação que leva minha camada de serviço 2 segundos para o fullfil está levando 20 segundos do GWT para serializar. Meu serviço está retornando ~ 100 o que será EntityProxies. Cada um desses objetos tem o que se tornará 4 ValueProxies e mais 2 EntityProxies (100 EntityProxies de raiz, 400 ValueProxies e 200 EntityProxies adicionais). No entanto, vejo a mesma degradação de desempenho 10x em conjuntos de dados muito menores.

Exemplo de trecho de log:

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

Eu adicionei alguns códigos de perfil aoServiceLayerDecorator#invoke método e envolveu todo o servlet em um temporizador. Eu criei o perfil por conta própria e, de fato, está retornando resultados em ~ 2s.

Estou usando o GWT 2.4, mas testei isso no GWT 2.5rc1 e no GWT 2.5rc2. Meu back-end está no GAE, mas não acho que esteja desempenhando um papel aqui.

eu encontreiesse bug arquivado contra 2.4, que parece estar muito relacionado. Eu apliquei manualmente o patch deeste grupo do google sem sorte.

Meus modelos de domínio se parecem com:

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;
}

Minha pergunta é:

Eu perfilei o código corretamente e isolei o problema para a serialização do GWT?Eu poderia estar fazendo algo errado que causaria esse comportamento?Como posso definir melhor o código de serialização do GWT para tentar descobrir a causa?

questionAnswers(1)

yourAnswerToTheQuestion