Generiert Java Externalizable readExternal () / writeExternal () Blöcke automatisch

8

Ich arbeite an einem Projekt, in dem die native Serialisierung von Java langsam ist. Daher möchten wir die Implementierung der Externalize-Schnittstelle in den Klassen implementieren, um eine bessere Leistung zu erzielen.

Diese Klassen haben jedoch viele Datenelemente, und wir haben festgestellt, dass es leicht ist, Fehler zu machen, wenn Sie diese beiden Methoden schreiben. Wir lesen / schreiben nur alle Mitglieder der Klasse in diesen Funktionen, nichts Besonderes. Gibt es eine Möglichkeit, die Blöcke readExternal() writeExternal() automatisch in einem Offline-Prozess oder zur Kompilierzeit externalisieren zu lassen?

Ich habe mir Ссылка angesehen, und so etwas wäre ideal gewesen.

Ähnlich möchten wir diese Klassen unveränderlich halten, aber unveränderliche Klassen können die externalisierbare Schnittstelle nicht implementieren - wir wollen das Proxy-Klassenmuster von effektivem Java verwenden - das erzeugte wäre auch nützlich.

    
MrLebowski 16.08.2011, 22:25
quelle

1 Antwort

1
  

Ich arbeite an einem Projekt, bei dem die native Serialisierung von Java langsam ist

Wie langsam? Warum? Es ist höchst unwahrscheinlich, dass es mit langer Handcodierung schneller ist, wenn es wirtschaftlich machbar oder auf lange Sicht haltbar ist. Serialisierungs-Overheads sollten wirklich auf Zeit- und Raumgrenzen in der Übertragung herunterkommen. Es gibt keinen besonderen Grund, warum Javas Standard-Serialisierung überraschend langsamer sein sollte als das Ergebnis der von Ihnen geplanten Handcodierung. Sie würden besser nach Ursachen suchen. Sie könnten zum Beispiel finden, dass ein gut platzierter BufferedOutputStream alle Ihre Probleme lösen würde.

    
EJP 17.08.2011 08:25
quelle