Es gibt viele Fragen und Antworten über die Größe eines Java-Objekts, die recht einfach zu verstehen ist. Aber ich frage mich, wie groß eine Java-Klasse im PermGen-Raum sein kann.
Der Grund, warum ich mich darüber wundere, ist, dass ich einen Codegenerator schreibe, der viele Klassen erzeugt. Im Wesentlichen generiere ich zwei Klassen für jede Tabelle/Ansicht in einer Datenbank. Jetzt möchte ich auch Fremdschlüsselbeziehungen modellieren. Anstatt eine komplexe, serialisierbare Objektstruktur zu pflegen (man denke an eine Tabelle mit einem eindeutigen Schlüssel, der von mehreren Fremdschlüsseln referenziert wird, die zu anderen Tabellen mit anderen Fremdschlüsseln gehören, usw.), würde ich lieber eine Klasse pro UNIQUE KEY
und eine Klasse pro FOREIGN KEY
.
Hier sind meine Fragen:
- Wie viel Overhead für den Classloader und den PermGen-Speicherplatz werde ich damit erzeugen?
- Gibt es einen Unterschied zwischen
public
Klassen,static
Klassen undprivate
Mitgliedsklassen? - Sehen Sie eine bessere Möglichkeit, Fremdschlüsselinformationen im Quellcode zu erzeugen?