我在 ColdFusion 中编写了一个数据库加载脚本,但遇到了脚本慢慢耗尽内存的问题。我已经使用 <cfthread> 将每个表加载拆分到自己的线程中,并且当内存低于 50% 时调用垃圾收集器(确保在 gc() 调用之间有 30 秒以防止垃圾收集器占用内存) .
我创建了一个 CFC 来保存脚本所需的所有查询。该脚本调用相应的 CFC 函数,然后返回查询,其中一些大小超过 2 MB。当我在活动线程的内存页面的详细信息视图中查看服务器监视器时,看起来我的 CFC 将查询的副本保留在内存中,即使我对查询变量进行了 varscoped 并且变量最后超出了范围的功能。此外,我在线程的内存中有一份查询副本。所以我只剩下内存中查询的两个副本。真的是这样吗?如果是,我怎样才能从内存中删除一份查询?