2016-05-13 17 views
0

Es gibt ein Java-Swing-Programm mit vielen Variablen und Funktionen von Scope-Klasse und Methode, um Daten zu erfassen, um eine XML-Nachricht zu generieren. Ich begann mit Ansatz, Initialisierung aller GUIs in einer einzigen Methode und stieß auf Begrenzung der maximalen Methode Größe von 64k. Später wählte ich Ansatz der Initialisierung eines Panels und seiner unmittelbaren Kinder in einer Methode, um es zu überwinden.

Einige Beobachtungen über das Programm wie folgt:Wie viele Ressourcen werden benötigt, um ein Java-Programm zu kompilieren und auszuführen?

I)
a) Größe: 6,67 MB (69,98,520 Bytes)
b) kloc: 136k (135.934 Zeilen)

II) Klasse Scope:
a) JPanel: 1380
b) GridBagConstraints: 1380
c) JTextArea: 355
d) JTextField: 3601
e) JScrollPane: 355
f) JFormattedText 1149
k) JSpinner: 1149
l) int: 1364
m) String-Arrays: 1364
n) Funktionen: 3550 [1380 (GUI initilisors) 1791 (Etter)]

III) Methode Geltungsbereich:
a) innere Funktionen: 376
b) zum Schleifen: 752
c) wenn Verzweigung: 2257
d) versuchen, ... catch: 377
e) int: 376
f) JLabel: 4750
g) JPanel: 4750
h) JSpinner: 377
i) String: 752
und

IV)
a) kein Verfahren, überschreitet in der Größe 64 kb
b) Summe der Anzahl von Variablen und Methoden weniger als 64k
c) Java Compiler wirft:
i) "System aus Ressourcen" Ausnahme oder
ii) "zu viele Konstanten" Ausnahme

Welche Parameter werden bei der Berechnung der erforderlichen Ressourcen für die Kompilierung und Ausführung aus dem Java-Programm berücksichtigt? und
Wie viel Ressourcen sind erforderlich, um das besagte Java-Programm zu kompilieren und auszuführen?

Antwort

1

Die Methode Größe ist die Menge Bytecode erforderlich. Dies kann vollständig qualifizierte Klassennamen enthalten, so dass es manchmal größer als Ihre Quelle Datei sein kann.

Die maximale Methodengröße ist eine Dateiformatbeschränkung der Java-Laufzeitumgebung. Es wurde erwartet, dass dies "groß genug für ein sinnvolles Programm" ist (leider kann manchmal Code kann sinnvoll sein, aber größer).

Die Lösung ist Struktur Ihres Programms. Verwenden Sie mehr Methoden.

0

Um zu sehen, wie viele Ressourcen die Anwendung zur Laufzeit verwendet, gibt es in Ihrem JDK ein Tool namens jvisualvm.

Es zeigt so ziemlich alles, was Sie sehen müssen.

Verwandte Themen