Coldfusion组件吃JVM内存

时间:2013-12-16 05:01:32

标签: java coldfusion garbage-collection

我正在尝试一些堆大小管理建议,但这是一个缓慢的过程...... 我想张贴一些希望有人提出建议......

我正在根据情景分析数据 - 分析有点复杂,但并不可怕。 但是,当我尝试针对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?我想要吗?我是不是该?

1 个答案:

答案 0 :(得分:0)

Java并不建议强行调用GC。尝试优化可能占用内存的代码和查询,或者通过在容器配置中定义-Xms256m和-Xmx512m属性来管理jvm大小。