有时候咱们老是抱怨,EAS太不稳定了,老是动不动就Crash,甚至有人说EAS太垃圾了。java
真的吗,或许你对EAS的内存机制有些了解后,就不会有这样的想法了,由于你能够避免这个问题。怎么样作呢?继续往下看吧。设计
EAS有三个重要的堆(Heap)内存
PBHeap:从2MB开始,根据须要能够自动增加,这是pb的虚拟机要使用的。资源
SybHeap:从2MB开始,根据须要能够自动增加,这是EAS内部要使用的。虚拟机
JVMHeap:大小靠maxHeapSize决定,这是java代码要使用的。变量
你们都知道,Heap资源是多么的紧缺。当你的pb组件大量使用Heap时,就会影响到SybHeap,从而致使你的EAServer崩溃。那是什么缘由到致使这样的问题呢?方法
第一:pb虚拟机的内存泄露,没有办法,有些版本的pb虚拟机存在内存泄露,惟一的办法就是升级,打补丁。内存泄露
第二:你的状态组件太多,而且没有及时销毁,你须要修改你的代码,更改组件属性,必要的时候,可能要修改你的系统设计构架。系统设计
第三:你的组件在内存中占用太多的内存,而且活动组件有太多,而你又没有足够的内存,这种状况下,增长内存是你惟一的办法。环境变量
固然,你也能够经过下降JVM maxHeapSize来跟PBVM更多的可用空间。
另外,你也能够经过设置PB_HEAP_SIZE这个环境变量来增长pb虚拟机的可用内存空间,但要说明的是,这个方法可能不会给你带来预想的效果。