有時候咱們老是抱怨,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虛擬機的可用內存空間,但要說明的是,這個方法可能不會給你帶來預想的效果。