C#+WPFチューニング戦記

C#とWPFで高速なコードと最適なシステムを書くためにやってきたいろいろな事を書いてみます。.NET Frameworkのソースコードを読み解きましょう。なお、ここに書かれているのは個人の見解であって何らかの団体や企業の見解を代表するものではありません。

RecomputeZState()を読みます

http://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/Controls/Panel.cs#1001

これはPanel.csの一部です。
ZIndexが変更されたり、Panelの子要素が追加される度にこれくらいの処理が行われることを覚えておきましょう。
ただのソートです。が、これが毎回、1変更ごとに行われるとなったら、なかなかの処理量です。
おまけに毎回、子要素数と同回数、添付プロパティアクセスします。
1万くらい置いてあったらどれほどの重量になるかわかるでしょうか。いや、1千でも相当の負荷です。