发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 CQRS
1 2 下一页 Go 2

在java项目中的内存问题

2003-09-29 11:36
赞助商链接

在我现在进行的java项目中,我采用的是基于struts的b/s项目,其实项目也不大,使用的是tomcat作为服务器,现在在运行的过程中,发现tomcat耗用的内存在不断的增加,到了一定的时候,就会报out of memery的错误,由于我不知道项目的哪些部分程序耗用内存,我现在采用java -Xms10M -Xmx1G的形式来解决,不过我觉得这样不是很好。不知到有什么工具或者方法能够检查出哪些程序耗用内存,没有进行释放。
谢谢各位

2003-09-29 11:45

因为 String 而出现 OutofMemory 错误的机率比较大,所以请先检查一下看看有没有什么地方有 String.toArray() 之类的方法调用?
大文本的处理要比较小心,即使把内存加到 1G,如果使用不当,OutofMemory 还是会出现。

2003-09-29 12:20

borland的optimizeit就是可以来检查java内存的问题,不过我没用过,不知道好不好用。

不过好像有文章讲过java中主要的内容问题是在String上。

如果String对象会有 “+=”之类的操作,还是用StringBuffer类吧。
其他我也不是很清楚,原来听别人说用了struts效率比较低,也不知道问题在哪?

2003-09-30 01:03

When you suspect there is a memory leak, start with small memo footprint, watch GC behavior, this will give you an idea whether memo increasement is caused by transient( possibly big chuncks, or two frequent allocation requests) or non-transient( a true memory leak). If you had identified a memory leak, then use profiling tools.

Increase Xmax will only alleviate your problem in dev time, but can cause fatal disaster in prodution. So don't do it. On the contrary, in debugging, you would reduce the Xmax to accelarate the syndrome for small apps.

Cheers,
-Jevang

2003-10-10 17:41

其实我也知道用-Xmxn 是不合适的,不过你说使用profiling tool,我也简单的用了一下-Xrunhprof来看,感觉不太好用。不知这位大侠能否推荐一下有关的好用的工具(最好是免费的)。
谢谢了

2Go 1 2 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com