Grails、映射和内存管理

标签 grails

根据我的经验, map 是 Grails 和 Groovy 开发中非常常见的习惯用法。现在我已经转移到一个更传统的 Java 项目,我因使用 HashMaps 而受到技术主管的严厉打击,我理解他的理由。 HashMap 使用StrongReferences。只要存在引用链,StrongReferences 就会一直存在。

我在 Groovy 中看到的一个常见习惯用法是使用映射来本质上代替 POJO。 (就像在网上浏览示例时您到处都能看到它一样。)

Grails 如何通过其所有的映射惯用法来解决这个问题?有人在他们的 Grails 应用程序上做过内存分析吗?像 params 这样的映射会停留一段时间,还是会按预期死亡并在用户 session 终止时被收集?或者我需要像在 Java 中一样了解在 Grails 中使用 Map 吗?

======更新==== 上面的问题依然存在,但是引用的文章是here :

最佳答案

HashMap 的实例与 Java 中任何其他类的实例没有什么不同 - 只要映射(分别是 POJO)可访问,那么映射条目(分别是字段)引用的所有其他对象在 POJO 中)也可以访问。一旦映射 (POJO) 实例被取消引用,只能通过映射 (POJO) 访问的所有条目(字段)将有资格进行垃圾回收。

在这方面, map 并不比其他类更好或更差。

关于Grails、映射和内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15067576/

相关文章:

java - 来自 Java 源错误 : cannot find symbol 的 Grails 域类方法

grails - 我们可以在 g :select optionValue? 中有多个字段吗

javascript - 如何捕获javascript中异步调用的错误?

grails - 无法在Grails应用程序中解码urlMapping

email - 使用模板发送电子邮件-Grails

jquery-ui - 自定义 Grails 生成的 View

grails - 如何在resources.groovy中编辑现有的Spring bean

grails - Grails 3,如何运行具有较旧grails版本的项目

grails - Grails插件无法访问多数据源

grails - SpringSecurity重播登录Grails