加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

xpages – XPage Java对象在SSJS中的回收

发布时间:2020-12-14 05:42:55 所属栏目:Java 来源:网络整理
导读:我已经阅读了关于Domino对象回收的建议: What is the best way to recycle Domino objects in Java Beans 如果我有一个名为document的数据源,并且这个代码存在的函数被调用了几次,那么最好的做法是什么? var doc=document.getDocument(true) 并做后台文件
我已经阅读了关于Domino对象回收的建议:
What is the best way to recycle Domino objects in Java Beans

如果我有一个名为document的数据源,并且这个代码存在的函数被调用了几次,那么最好的做法是什么?

var doc=document.getDocument(true)

并做后台文件的东西.

在我退出该函数之前,我应该回收doc还是将我的后端文档转发到数据源中?

解决方法

这是一个很好的问题,因为这是“循环利用”原则的唯一例外之一(另外两个值得注意的例子是您不应该回收当前会话或数据库).对于数据源的后端文档进行回收是一个坏主意,因为JSF生命周期具有相同的句柄,您将从Domino中回收.数据源为我们照顾,所以不需要手动回收.另一方面,如果您获取特定项目(即doc.getFirstItem(“someFieldName”)或作为日期的项目值的句柄,则应该回收这些对象,而不是文档本身.

到目前为止,最重要的情况是回收Java和SSJS对象至关重要,因为每次前进到下一个条目或文档时,如果您跳过循环,则会泄漏句柄.在大多数其他情况下,回收仍然是可取的,但更接近于可选的,因为其他操作需要很长时间才能泄漏出来,造成问题.但是,如果您正在迭代一个非常大的视图,那么如果忘记回收,您可以轻松地在单个迭代中运行句柄.

然而,一个分开的想法:我很少看到一个情况,即在数据源的后端文档中获取句柄是最好的方法,所以我建议重新访问你的代码,以确保甚至有必要获取这个句柄开始.例如,而不是document.getDocument(true).getItemValueString(“someFieldName”),只需调用document.getValue(“someFieldName”)即可.返回的值应该是相同的,但是它会运行得更有效率,而你不会碰到后端文档,所以回收不是一个问题.而且每个项目访问的打字都较少,这肯定会随着时间的推移而增加.同样,代替document.getDocument(true).replaceItemValue(“someFieldName”,“newValue”),替换document.setValue(“someFieldName”,“newValue”).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读