2013-10-29 7 views
9

現在、Primeface 3.4.2を使用しています。私たちは、ajaxを使用してアプリケーションをナビゲートすると、ページをリロードせずに大量のメモリを使い始めることに気付きました。現在、CCDumpというプログラムを使用してfirefoxのメモリを分析し、多くのゾンビドームオブジェクトを保持している場所に気付きました。次primefaces selectBooleanCheckboxPrimefacesパフォーマンスに関する質問

<p:selectBooleanCheckbox id="compareChkbx" 
    value="#{cc.attrs.xProd.selected}" styleClass="selectBooleanCheckbox" 
    rendered="#{dto.size > 1}" > 
    <p:ajax event="change" oncomplete="radioButtonSelected()" 
     listener="#{compareBean.onClickCompare(cc.attrs.xProd, cc.attrs.dto.partTerminology.partTerminologyId)}" update=":hform:lookupResults:pageInfo :hform:compareProducts:compareGroup @this" process="@this" /> 
</p:selectBooleanCheckbox> 

そして、私はCCの分析を実行したときに、私は、このインスタンスの要素の数百人を見ていますによって作成された一つのオブジェクトに焦点を当てるに絞ら。要素の一つに、私は「グラフ表示」した場合、私は、次を得る:

FragmentOrElement (xhtml) input id='lookupResults:CatResultList:0:aapPartType:list-by-cat:22:aapProd:aapProd:compareChkbx_input' http://localhost:8080/epcfe-web/main.xhtml 
JS Object (HTMLInputElement) 
FragmentOrElement (xhtml) div class='ui-helper-hidden-accessible' http://localhost:8080/epcfe-web/main.xhtml 
FragmentOrElement (xhtml) div id='lookupResults:CatResultList:0:aapPartType:list-by-cat:22:aapProd:aapProd:compareChkbx' class='ui-chkbox ui-widget selectBooleanCheckbox' http://localhost:8080/epcfe-web/main.xhtml 
nsChildContentList 
nsEventListenerManager 

私はしばらくの間、アプリケーションをナビゲートした後、私は放火犯スクリプト]タブでhundereds javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces/eval/seq/xxで終わるということである気づく他の事

私は、p:selectBooleanCheckboxによって作成されたdivに接続されている割り当て解除されていないリスナーがあると思うし、ちょうど私がこのオブジェクトをリリースする方法を知りたいのは、ajaxを使ってページのその部分をリロードした後です。

答えて

8

PrimeFacesを使用している間にメモリリークに関する議論があります。私がいない

http://code.google.com/p/primefaces/issues/detail?id=4848

:年近く前にこのバグ報告やパッチの提出につながった

http://forum.primefaces.org/viewtopic.php?f=3&t=25942&sid=caab96cad56a307f298b6267bf1936ef

:「バイエル-DBAは」PrimeFacesコミュニティフォーラムでこの質問を投稿しましたこのパッチがまだトランクに入っていると思っていますが、コードを見ると、削除されたときにウィジェットリソースをクリアするためにdispose()メソッドが各ウィジェットに追加されていることがわかります。

このパッチを適用すると、ゾンビのDOM要素に関する状況が改善されることがあります。あなたのスクリプトで似た何かを試みることができるので はまた、私は、パッチが「PrimeFaces.widgetCache」への参照その清算アウト資源を作ることに気づく:

delete PrimeFaces.widgetCache[id];

_Pez

+0

最初のリンクは、番組を提供しました驚異的な自己研究およびデバッグ機能を提供します。あなたの答えに+1して、私はbayer-dbaがPFフォーラムにいる人にそれを与えることもできたと思っています。 –