3

我正在使用 CF10 应用程序并尝试定义应用程序特定的类路径以使用CF10 中引入this.javaSettings的 功能加载 JAR 。

从 Application.cfc:

THIS.javaSettings = {
    LoadPaths = [".\java_lib\",".\java\myjar.jar"], 
    loadColdFusionClassPath = true, 
    reloadOnChange = false
}

这很好用,我可以在应用程序的基础上定义 JAR。但是,每次我重新加载应用程序(例如,如果我调用applicationStop())时,CF 似乎都会保留所有加载的 JAR/类,同时重新加载它们——这意味着在多次重新加载后,我不可避免地会得到一个内存不足 Perm Gen 错误。

有没有人经历过这个?我通过更新 GC 策略来启用 permgen 收集尝试了通常的方法:

-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled
4

1 回答 1

0

好的,这不是 CF 功能的问题 - 结果表明内存泄漏源自已编译到 jar 中的 groovy 代码(您可以在此处阅读 groovy 详细信息:https ://stackoverflow.com/a/ 17952925/258813 )

看起来好像 CF10 热重装罐子工作正常!

于 2013-07-30T16:54:26.673 回答