4

我在应用程序范围内有一个 CFC 作为单调对象。

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

编辑方法内的所有变量都是 VAR 范围的,因此在调用结束时它们不应保留在对象范围内。

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

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

4

2 回答 2

2

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

于 2010-03-15T18:47:39.153 回答
1

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

于 2010-03-15T16:29:49.607 回答