1

SLEnterpriseアプリの開発についてパフォーマンスに関連する質問がいくつかあります。

-ItemsSourceコントロールにバインドする10.000行があります。(データバインド時の合計100.000以上のUIElements)

Q1。このバインディングを別のスレッドで行うにはどうすればよいですか?バインディングが発生している間、Silverlightがスタックするためです。

Q2。ItemsControlと同じ視覚的な柔軟性で提案する、これを行う他の方法。

-サーバーから合計60MB(解凍されたバイナリシリアル化XML)データを取得し、SLユーザーが20分間使用できるようにします。

Q1。メモリリークが発生し、メモリに何が残っているのかを把握するのに苦労していますか?これを示すツールはありますか?

最新のテストによると、UIElementsはメモリを埋めるものです。5つのネストされたItemscontrolがあり、適切な値を計算で埋めるために、内部コントロールの多くの「ロードされた」イベントを追跡します。私が見る限り、仮想化はアイテムコントロールで機能していません。

いつもありがとうございます。

4

1 に答える 1

1

DataGrid を使用している場合、仮想化はデフォルトでオンになっているはずです。

一度に大量のデータをプルすると、問題が発生する可能性もあります。サーバー側のページングを含む何らかの解決策を見つけようとします。

編集:

ItemsControl を使用していることを確認しました。(サーバー ページングを機能させる前に) 最大のパフォーマンス向上は、仮想化を機能させることです。これは、一般化された ItemsControl でそれを行うことに関する良い記事です (イベントが正しく発生しないという問題にも対処しています)。

http://blogs.claritycon.com/blogs/lee_roth/archive/2009/09/16/custom-panels-in-silverlight-wpf-part-4-virtualization.aspx

于 2009-10-14T06:08:22.687 に答える