多次从外部调用同一Java程序以避免堆空间过大,并影响统计数据
我正在执行测试,尝试多个参数组合。每一个都必须执行10次,这样我才能得到一个平均值 下面的代码展示了我的第一次尝试,它超出了Java堆空间多次从外部调用同一Java程序以避免堆空间过大,并影响统计数据,java,bash,performance,performance-testing,Java,Bash,Performance,Performance Testing,我正在执行测试,尝试多个参数组合。每一个都必须执行10次,这样我才能得到一个平均值 下面的代码展示了我的第一次尝试,它超出了Java堆空间 For (int i=1; i<=10; ++i) { System.out.println("Test # " + i); method( { 1 } ); method( { 2 } ); ... method( { 1, 2 } ); ... method( { 1, 2, 3, 4, 5 } ); }
For (int i=1; i<=10; ++i) {
System.out.println("Test # " + i);
method( { 1 } );
method( { 2 } );
...
method( { 1, 2 } );
...
method( { 1, 2, 3, 4, 5 } );
}
For(int i=1;i确保method()
没有内存泄漏。这主要意味着确保它不使用static
字段,如果该方法是非静态的,则确保在该方法存在时清除所有字段(或为每个方法调用创建新实例).---您也可以在运行程序时使用-Xmx
选项为程序提供更多内存。Andreas,该方法使用静态字段来避免新的实例化。我正在开发一个索引。该方法不使用太多内存。问题是同一步骤中的调用量。但是如果您使用不同的参数测试方法那么,每个测试都应该从头开始,否则你没有进行正确的单元测试。如果它没有“使用这么多内存”,为什么你的内存不足,如果不是因为内存泄漏。修复泄漏,你的代码就会正常运行。
for (int i=1; i<=10 ; ++ i) {
System.out.println("Test # " + i);
method( { 1 });
}