内存溢出 请教 急

WesleySoSo 2010-05-25 10:51:08
是一个C/S项目,有客户端跟服务器的,最近程序总是因为这个问题造成连接失败,请各位高手指点
以下是log:

Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
at java.io.ObjectInputStream$BlockDataInputStream.<init>(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at sun.rmi.server.MarshalInputStream.<init>(Unknown Source)
at sun.rmi.transport.ConnectionInputStream.<init>(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.getInputStream(Unknown Source)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
at java.io.BufferedInputStream.<init>(Unknown Source)
at java.io.BufferedInputStream.<init>(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
at java.io.BufferedInputStream.<init>(Unknown Source)
at java.io.BufferedInputStream.<init>(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
...全文
485 12 打赏 收藏 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
龙四 2010-05-25
  • 打赏
  • 举报
回复
6
[Quote=引用 3 楼 werosh 的回复:]

启动java程序时,带上两个参数:
-Xms java虚拟机初始化时使用的内存大小
-Xmx java虚拟机可以使用的最大内存

以上两个参数中设置的size,可以带单位,例如:256m表示256MB

举例说明:
D:\j2sdk15\bin>javac HelloWorld.java

D:\j2sdk15\bin>java -Xms256M -Xmx512M HelloW……
[/Quote]
sxg263 2010-05-25
  • 打赏
  • 举报
回复
友情顶一下
werosh 2010-05-25
  • 打赏
  • 举报
回复
启动java程序时,带上两个参数:
-Xms java虚拟机初始化时使用的内存大小
-Xmx java虚拟机可以使用的最大内存

以上两个参数中设置的size,可以带单位,例如:256m表示256MB

举例说明:
D:\j2sdk15\bin>javac HelloWorld.java

D:\j2sdk15\bin>java -Xms256M -Xmx512M HelloWorld
Hello World!
WesleySoSo 2010-05-25
  • 打赏
  • 举报
回复
网上都是tomcat的设置 我是cs程序 没找到在哪设置呢 程序里 还是在环境变量中 还是打包的时候?
izard999 2010-05-25
  • 打赏
  • 举报
回复
调虚拟机内存阿.! 方法google上多的就是, 建议LZ去搜下
huanhuanfu 2010-05-25
  • 打赏
  • 举报
回复
好问题。。
huanhuanfu 2010-05-25
  • 打赏
  • 举报
回复
好问题。。
氧气网航 2010-05-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 crazylaa 的回复:]
引用 6 楼 kala888 的回复:

建议,先不要条内存哈,如果不是很小的话。
先看看你程序写得是不是规范,看看是不是有没有大量的没有释放的资源,和大批量数据操作时内存的使用。
之前我们服务其就经常溢出,后来发现是一个操作要从后台取几万的数据,放到jvm里操作,有几个命令就把内存耗尽了。改了中处理方式,“少吃多餐”就解决了。


同意,还是应该先检查和调整代码,调内存毕竟不是最终……
[/Quote]
这个仁兄的方法好像很好,不过这问题我都没遇到。感觉JAVA应该注重下算法,减少内存的使用
jywbd 2010-05-25
  • 打赏
  • 举报
回复
路过,呵呵
crazylaa 2010-05-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 kala888 的回复:]

建议,先不要条内存哈,如果不是很小的话。
先看看你程序写得是不是规范,看看是不是有没有大量的没有释放的资源,和大批量数据操作时内存的使用。
之前我们服务其就经常溢出,后来发现是一个操作要从后台取几万的数据,放到jvm里操作,有几个命令就把内存耗尽了。改了中处理方式,“少吃多餐”就解决了。
[/Quote]

同意,还是应该先检查和调整代码,调内存毕竟不是最终解决之道。
fsh2008 2010-05-25
  • 打赏
  • 举报
回复
这个问题我也遇到过几次, 友情顶下...

建议: 可以从两方面解决, 一是修改造成内存溢出的程序代码, 二是调虚拟机内存.
kala888 2010-05-25
  • 打赏
  • 举报
回复
建议,先不要条内存哈,如果不是很小的话。
先看看你程序写得是不是规范,看看是不是有没有大量的没有释放的资源,和大批量数据操作时内存的使用。
之前我们服务其就经常溢出,后来发现是一个操作要从后台取几万的数据,放到jvm里操作,有几个命令就把内存耗尽了。改了中处理方式,“少吃多餐”就解决了。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧