MoneyTools / MyMoney.Net

MyMoney is a rich client .NET ClickOnce application for managing your personal finances. It is written entirely in C# and is designed for programmers who want easy access to their data and who want to quickly and easily add their own features. Your data will not be locked up in some proprietary format, it is yours to do with as you like.
https://moneytools.github.io/MyMoney.Net/
70 stars 21 forks source link

ModernWPF Performance Needs Improving #63

Open lovettchris opened 2 years ago

lovettchris commented 2 years ago

The new UI seems a bit sluggish - especial page up/page down in Brokerage accounts. If you run Source\WPF\PerformanceGraph\bin\Debug\PerformanceGraph.exe over a single spaced brokerage account with 600 rows or more and record this in the PerformanceGraph bar chart you will see this:

image

Notice PrepareContainerForItemOverride taking time, and there are also big gaps between each one, perhaps waiting for page up repeat key, but even if you mash the page down key as fast as you can there is limited speed here. You can zoom in and see that each PrepareContainerForItemOverride takes up to 0.386ms and there is one for every row in the page. But what is the big gap between the PrepareContainerForItemOverride clusters doing exactly.

So we need some expert WPF perf analysis here...