如果删除文件,是否还需要回收?

时间:2014-07-31 21:53:41

标签: javascript xpages

在Javascript中我正在迭代UNID数组并通过UNID获取NotesDocument,然后我做了doc.remove(true);

这样做是否有必要进行doc.recycle()?

2 个答案:

答案 0 :(得分:4)

简短回答

对于新手,Java中的Notes对象由Java对象和对C ++对象的引用组成。因此,当Java对象变为null(或无用)时,垃圾收集器将在一定时间后清除内存空间。但是,C ++句柄将持续存在。所以我们回收注释对象来销毁C ++对象引用。 This页面可以很好地解释回收。

另一方面,doc.remove()可以被视为状态变化。此外,如果您的数据库中启用了软删除,它甚至不会删除文档,只会标记为已删除(您必须调用.removePermanently()来硬删除它)。 C ++对象引用将保留在内存中。

因此,remove方法不会触发对象的回收。回收仅由对象本身或其父对象触发。

答案 1 :(得分:1)

我相信你还是应该回收它。那时候的对象不是文件。