有一个java swing程序,它有许多变量和范围类和方法的函数来捕获数据以生成xml消息。
我从方法入手,在单个方法中初始化所有GUI,并遇到最大方法大小为64k的限制。
后来,我选择了初步建立一个小组及其直接孩子的方法来克服它。
一些关于该方案的观察,如下:
I)
a)大小:6.67 MB(69,98,520字节)
b)kloc:136k(135934行)
II)课程范围:
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)字符串数组:1364
n)功能:3550 [1380(GUI初始值)+1791(设置者)]
III)方法范围:
a)内部功能:376
b)for循环:752
c)如果分支:2257
d)尝试......捕获:377
e)int:376
f)JLabel:4750
g)JPanel:4750
h)JSpinner:377
i)字符串:752
和
IV)
a)没有超过64kb的方法
b)小于64k的变量和方法的总数
c)Java编译器抛出:
i)"系统资源不足"例外或
ii)"太多的常数"例外
在计算从java程序编译和运行所需的资源时,需要考虑哪些参数?和
编译和运行上述java程序需要多少资源?
答案 0 :(得分:1)
方法大小是所需的字节码的数量。这可能包括完全限定的类名,因此它有时可能比 source 文件大。
最大方法大小是Java运行时的文件格式限制。 预计这对于任何有意义的程序都“足够大”(不幸的是,有时生成的代码可以有意义,但更大)。
解决方案是构建您的程序。使用更多方法。
答案 1 :(得分:0)
要查看应用程序在运行时使用了多少资源,JDK中有一个名为jvisualvm的工具。
它将显示您需要查看的所有内容。