我正在尝试一些堆大小管理建议,但这是一个缓慢的过程...... 我想张贴一些希望有人提出建议......
我正在根据情景分析数据 - 分析有点复杂,但并不可怕。 但是,当我尝试针对1000个不同的数据集运行场景时......我崩溃了我的服务器,
我的样本量为100000个数据集 - 并且需要针对此集运行方案 - 我发现我可以循环10-20集,然后系统自己吃...... JVM内存爬到最大值。
我必须清除组件缓存并从服务器监视器运行GC以降低内存使用率,但是当我再次运行循环时 - 它很快就会失控。
<cfscript>
x = 20;
obj = createObject( 'component', 'b' );
d = obj.insertData( FORM.DATA );
s = obj.insertScenario( FORM.SCENARIO );
Xscenarios = obj.getXscenarios( s, d, x );
// analyze x
for( i=1; i <=arrayLen( Xscenarios ); i++ ) {
a = obj.analyze( Xscenarios[i], s );
}
</cfscript>
每次分析大约需要3秒钟....
有什么建议吗?
每次循环后如何强制GC?我想要吗?我是不是该?
答案 0 :(得分:0)
Java并不建议强行调用GC。尝试优化可能占用内存的代码和查询,或者通过在容器配置中定义-Xms256m和-Xmx512m属性来管理jvm大小。