2011-01-19 16 views
0

各ノードがTreeNodeViewModelであるSilverlight TreeViewがあります。 TreeNodeViewModelのプロパティは、Text、IsSelected、ImageUri、およびParentです。私は約700から1000のTreeViewアイテムをロードしています。MVVMパターンを使用したSilverlight TreeViewのフットプリントが大きい

HierarchicalDataTemplateのバインディングを使用してTreeViewをロードした後、IEブラウザのフットプリントが約48,000kbから165,000kbに​​増加すると考えられます。私はViewModelをTreeView自体に使用しています。ツリービュー自体には、ExpandAllとCollapseAllのバインディングがあります。私がexpandコマンドを呼び出すと、IEのフットプリントはほぼ300,000kbに​​まで拡大し続けます。ツリーが完全に展開されたら、展開を繰り返して&が崩壊してもフットプリントは増加しません。つまり、すべてのViewModelが作成されると、レベルがオフになっているように見えます。

私の質問には、約800個のTreeViewアイテムをロードしている場合、足跡が私の場合と同じ大きさになるはずですか?膨大な量のデータをロードすることで、IEの足跡を見たことがある人はいますか?

私が開発しているSLアプリケーションの背景:ハードウェアデバイス(別名:サーバー)は、プロプライエタリハードウェアで、リンクスのルータに似た埋め込みWebサーバーを持っています。圧縮された設定ファイル(モデルエンティティ)がデバイスにロードされ、SLアプリケーションはDataContractSerializerを使用してそのファイルをダウンロードし、解凍して逆シリアル化します。圧縮されたファイルは約1.75MB、非圧縮は約12.5MBです。

私の最初の考えは、モデルの逆シリアル化のためにIEのフットプリントが大きかったということでした。最初にIEが起動すると、フットプリントは約7500kbで、モデルをメモリにロードすると最大48,000kbまで実行されます。

ご意見やご提案をいただければ幸いです。

+0

他のブラウザでの動作はどうですか? – CaptainPlanet

+0

ノードにはimageプロパティがあります。あなたのテンプレートには、それにバインドする 'Image'コントロールが含まれていますか?テンプレートから削除しようとしましたか? –

+0

動作は他のブラウザでも同じです.. – gcadmes

答えて

-1

私はあなたのプロファイルのようなプロファイラを使用して、少なくともメモリを占有していることに関するメモリプロファイルを取得することをお勧めします。ホットスポットがメモリ消費量に関してどのようなものであるかを知り、メモリリークを追跡するのに役立ちます。

165MBが多すぎますか?このメモリの使用量がGCに多すぎる圧力をかけておらず、ほとんどがゴミである場合に備えてGC.Collectを強制できますか?

あなたのアプリのプロフィールのより良いアイデアを得るには、間違いなくプロファイラーを試してみてください。

+0

どのようにSLアプリケーションをプロファイルしますか...プロファイルは機能しませんAFAIK –

+0

YourKitプロファイラはSilverlightと完全にうまく動作します。 Antsプロファイラもそうです。 –

0

これはあなたの質問に対する答えではありませんが、 私は標準のSilverlightコントロール+ Silverlightツールキットを使用していません。私たちはバグと戦うのに十分に苦労しました。それらのちょうど2:

  1. あなたはchildwidowに日付ピッカー(またはtimepicher)を置くことができない、そのスタイルが失敗し、あなたは物事が仕事を得るためにあなたのresoursesで-declarateを再する必要があります。

  2. TreeView - ツリービューの状態(どのノードが展開されているか、どのノードが展開されていないか)を保存することはできますが、復元は非常に難しいです。本当に難しい:あなたが両親を展開するまで、ノードは作成されません。

とにかく私の話は何ですか?できるだけ早く標準的なコントロールを放棄し、上司にTelerik、Devexpressなどを購入させてください。これはすでにSilverlightとwpfの第4版であり、いくつかの基本的なことはすぐに使えるコントロールライブラリでは行えません。メモリはまだ漏れており、バグは修正されません。

関連する問題