weixin_42297586 2010-06-29 23:02
浏览 182
已采纳

Java如何处理内存疯涨???

事情是这样:
1,有两个进程使用rmi通信,进程A负责向进程B发送信息,进程B负责处理进程。其中A没2秒向B发送一个List对象过来,B则将收到的A发送的List存储起来,因为可能B可能暂时处理不过来
2,A如果发送的List过大,会导致B根本没时间处理,导致B的内存出现井喷现象,甚至出现OutOfMemery错误而挂死
3,我试着修改了GC的各种配置,可还是解决不了问题

请大家能给我支招解决问题,感激不尽!!!

  • 写回答

2条回答 默认 最新

  • weixin_42516107 2010-06-30 02:14
    关注

    你B的进程VM参数中 有没有设置初始内存和最大内存
    你看是否可以这样:
    1、A 向 B发送数据之前,先检测一下B的负载,让B返回一个是否能接收新数据,如果可以接收新数据,就往B发送,如果不能,就过一定时间再发送
    2、看看能否优化一下B的效率,使B能处理得更快,或者把内存的数据先转移。
    3、考虑把B发布成分布式应用,缓解单个应用的压力

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 自适应 LMS 算法实现 FIR 最佳维纳滤波器matlab方案
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥15 Python3.5 相关代码写作
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像