mysql – Grails – 启动内存/内存使用/域对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – Grails – 启动内存/内存使用/域对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1577字,纯文字阅读大概需要3分钟。
内容图文
![mysql – Grails – 启动内存/内存使用/域对象](/upload/InfoBanner/zyjiaocheng/910/3d1558f7a3074c68b80cc23ee51a282b.jpg)
我部署了一个我构建的Grails应用程序(我创建的第一个应用程序),启动时内存使用量大约为2 GB. (雄猫6)
该应用程序在4种类型之间维护大约133,000个域对象.对DB的大多数事务都是搜索大约115,000个这些对象和正常的CRUD操作/文件导入和导出.
经过多次使用后,我发现我的内存标记为3.3 GB.
首先 – 为什么启动时内存使用率如此之高? Grails是否默认缓存内存中的域对象使用?
第二 – 我已经在应用程序的许多点处理了GORM清理,但内存使用率仍然很高(3.3GB). ORM层中是否存在导致事务缓存的内容等?
谢谢
– – – – – – – -编辑 – – – – – – – – – –
测试:我从数据库中删除了所有域对象
启动:514 MB
对象:993 MB(我根据DataSource文件修剪了一些性能)
** 数据源 **
dataSource {
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
username = "xxx"
password = "xxx"
}
hibernate {
cache.use_second_level_cache = false
cache.use_query_cache = true
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost/mydb"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost/mydb"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost/mydb"
}
}
}
解决方法:
JVM选项:
-server -Xms512m -Xmx1048M -XX:MaxPermSize = 1048m -XX:UseParallelGC -XX:-UseGCOverheadLimit
JavaMelody和perf4j:
– 帮助您了解内存使用的位置/内容/方式
看这http://burtbeckwith.com/blog/?p=73
这个http://grails.1312388.n4.nabble.com/Memory-leak-td1358871.html
这http://www.componentix.com/blog/8/run-long-batch-processing-jobs-in-grails-without-memory-leaks
还有这个
内容总结
以上是互联网集市为您收集整理的mysql – Grails – 启动内存/内存使用/域对象全部内容,希望文章能够帮你解决mysql – Grails – 启动内存/内存使用/域对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。