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条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器