GWT Requestfactory Leistungsvorschläge

Ich beobachte wirklich schlechte Leistung, wenn ich GWT requestfactory benutze. Zum Beispiel benötigt eine Anfrage, die meine Service-Schicht 2 Sekunden in Anspruch nimmt, GWT 20 Sekunden, um sie zu serialisieren. Mein Dienst gibt ~ 100 zurück, was EntityProxies sein wird. Jedes dieser Objekte verfügt über 4 ValueProxies und 2 weitere EntityProxies (100 EntityProxies auf Stammebene, 400 ValueProxies und 200 zusätzliche EntityProxies). Ich sehe jedoch den gleichen 10-fachen Leistungsabfall bei viel kleineren Datasets.

Beispiel eines Protokollausschnitts:

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

Ich habe dem Profiling-Code etwas hinzugefügtServiceLayerDecorator#invoke Methode und wickelte das gesamte Servlet in einen Timer. Ich habe den Dienst für sich selbst profiliert und er liefert tatsächlich Ergebnisse in ~ 2s.

Ich verwende GWT 2.4, habe dies jedoch auf GWT 2.5rc1 und GWT 2.5rc2 getestet. Mein Backend ist auf GAE, aber ich glaube nicht, dass das hier eine Rolle spielt.

ich fanddieser Bug eingereicht gegen 2.4, was sehr verwandt zu sein scheint. Ich habe den Patch von manuell angewendetDiese Google-Gruppe ohne glück.

Meine Domain-Modelle sehen folgendermaßen aus:

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

Meine Frage ist:

Habe ich den Code korrekt profiliert und das Problem auf die GWT-Serialisierung beschränkt?Könnte ich etwas falsch machen, das dieses Verhalten verursachen würde?Wie kann ich den GWT-Serialisierungscode besser profilieren, um die Ursache herauszufinden?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage