Java ColdFusion CFC的垃圾收集

Java ColdFusion CFC的垃圾收集,java,coldfusion,garbage-collection,cfc,Java,Coldfusion,Garbage Collection,Cfc,我有一个CFC作为应用范围内的单音对象 其中一种方法用于海量数据处理,并定期导致“Java堆空间”错误 EDIT方法中的所有变量都是变量作用域,因此调用结束时不应将它们保留在对象作用域中 对于Java人来说,这可能有点愚蠢,但我想知道Java垃圾收集器如何清理CFC方法内存:仅当整个请求结束时,或者可能在每次方法/函数调用之后 第二个选项很有趣,因为它可以让我将大型方法拆分为少数几个方法,作为可能的优化之一。Java在没有对象引用后释放资源。您有单例应用程序范围对象,这实际上意味着它永远不会释放

我有一个CFC作为应用范围内的单音对象

其中一种方法用于海量数据处理,并定期导致“Java堆空间”错误

EDIT方法中的所有变量都是变量作用域,因此调用结束时不应将它们保留在对象作用域中

对于Java人来说,这可能有点愚蠢,但我想知道Java垃圾收集器如何清理CFC方法内存:仅当整个请求结束时,或者可能在每次方法/函数调用之后


第二个选项很有趣,因为它可以让我将大型方法拆分为少数几个方法,作为可能的优化之一。

Java在没有对象引用后释放资源。您有单例应用程序范围对象,这实际上意味着它永远不会释放实例变量和类变量。除非您将在代码中手动执行此操作。您应该展示一些代码,以获得关于如何优化代码的更多建议。

众所周知,coldfusion在处理当前请求之前不会执行垃圾收集,即使您尝试手动调用它。

谢谢,您提醒了我一件重要的事情,但我忘了提到:变量的局部范围。虽然我不确定我是否可以在这里提供一些有用的代码示例,因为我的核心问题是关于更高级别的东西。然后,当你确定它们不再有用时,通过将值设置为null来清除它们。你是否尝试过在CF Administrator中简单地增加可用堆大小?@Ben,是的,我在Resin conf(使用Railo)中这样做了,但由于目前VPS RAM有限,这不会有多大帮助。我只是想在购买更多RAM之前尝试一些代码优化,至少我需要知道我不是在“喂野兽”:)哦。这正是我所想的,幸运的是我已经有了一个解决方案。谢谢