Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多次从外部调用同一Java程序以避免堆空间过大,并影响统计数据_Java_Bash_Performance_Performance Testing - Fatal编程技术网

多次从外部调用同一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 } ); }

我正在执行测试,尝试多个参数组合。每一个都必须执行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确保
method()
没有内存泄漏。这主要意味着确保它不使用
static
字段,如果该方法是非静态的,则确保在该方法存在时清除所有字段(或为每个方法调用创建新实例).---您也可以在运行程序时使用
-Xmx
选项为程序提供更多内存。Andreas,该方法使用静态字段来避免新的实例化。我正在开发一个索引。该方法不使用太多内存。问题是同一步骤中的调用量。但是如果您使用不同的参数测试方法那么,每个测试都应该从头开始,否则你没有进行正确的单元测试。如果它没有“使用这么多内存”,为什么你的内存不足,如果不是因为内存泄漏。修复泄漏,你的代码就会正常运行。
for (int i=1; i<=10 ; ++ i) {
    System.out.println("Test # " + i);
    method( { 1 });
}