2016-07-06 5 views
1

それは言う:Flambeでオブジェクトを正しく処分する方法は? <a href="https://github.com/markknol/flambe-guide/wiki/Components#boom-destruction" rel="nofollow">this Flambe guide</a>で

は「この処分関数はその所有するエンティティからこのコンポーネントを削除しますが、メモリリークを防ぐために、オブジェクトを自分で配置するために処分-機能をオーバーライドする必要があります。。」

  1. はどのようにdispose関数をオーバーライドする必要があります。

    は、私は3つの質問がありますか?

  2. dispose関数を正しく使用するにはどうすればよいですか?

  3. Flambeでメモリリークをチェックする方法はありますか?

答えて

1

1あなたはComponentを使用していない場合は、Component

override public function dispose() { 
    myReferences = null; 
    myDisposable.dispose(); 

    super.dispose(); 
} 

を使用している場合: あなたはDisposableを実装し、他の処分の機能に必要なときに処分することができます。

2オブジェクトへの参照を消去する必要があります。つまり、nullに設定する必要があります。 そのコンテキストで作成された信号接続を閉じる必要があります。 Disposableを処分する必要があります。

3 JavaScript(html)ターゲットを使用する場合は、chromeデバッグインスペクタ/ devtoolsを使用できます。あなたはメモリプロファイルを収集し、CPU使用率などを観察することができます。 https://developer.chrome.com/devtools/docs/profiles

+0

あなたの答えをありがとう。ちょっとした質問: あなたが 'myReferences'を書いたとき、あなたはこのコンポーネントオブジェクトへの参照を意味しました、そうですか? 「myDisposable」とは何ですか? このコンポーネントを所有者から削除するには、 'super.dispose()'を呼び出します。 – Robert777

+1

myDisposableは、Disposableインターフェイスを実装しているコンポーネントで使用されているものです。 myReferenceは、コンポーネント内で使用されている「Disposable」を実装していないオブジェクトの別の例です。 –

+1

はい、super.dispose()は、所有者からコンポーネントを削除するので、常に行うべきです。 –

関連する問題