开发者社区> 问答> 正文

Tomcat OutOfMemoryError异常问题

请教大家一个问题 我用都是ubuntu 12.10 x64位的,安装的eclipse ,jdk 都是64位的 tomcat 7.0.21
(java version "1.7.0_09" Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)),如果我用32位jdk运行项目不会提示错误,但是只要我用64位就提示错误
`Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0"
Exception in thread "http-bio-8877-exec-2"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "http-bio-8877-exec-2"
Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" ,`
能否帮我看看,谢谢,我都电脑是i7cpu 8g内存

展开
收起
落地花开啦 2016-03-25 16:57:35 4046 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    改$TOMCAT_HOME/bin下面的catalina.sh,JVM启动参数设定JVM启动参数
    -XX:+UseCompressedOoops 开启普通对象指针压缩功能,另外xms和xmx可以设定比你原来32位的时候更大,反正64位不再有那个1.5G的限制了。这样多少会有点缓解。

    对自身程序优化也可以同时做一下,多试试看看造成内存溢出的原因是不是总是那一段代码,优化一下,比如不要总是从数据库一次性拖大量东西到内存。

    另外之前看到有文章说不止是内存方面,性能上64位JVM比32位也有大约15%的性能差距,没有实际测试过这方面,不敢肯定,不过要改变运行环境,多少还是要各种测试的。

    2019-07-17 19:14:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Tomcat 的云原生演进 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载