- Ask the Performance Team (Thoughts from the EPS Windows Server Performance Team) – in their own words “… the Performance team covers a broad range of seemingly unrelated areas such as Core OS Performance, Printing, WMI and Terminal Services. Simply put – we’re a bit of a “catch-all” team. [...] Because we cover such a wide spectrum of technology, we see many different types of issues – some more frequently than others. So we thought we should share with the broader technical community. We’ll be sharing troubleshooting tips and technical information on areas of our specialty that we cover.”
- 45+ Excellent Code Snippet Resources and Repositories – it is what it says it is.
Archive for the 'Performance' Category
Today’s Sites/Blogs
The Top 10 steps to optimize data access in SQL Server article series at CodeProject, despite some mistakes and arguable things, is not that bad starter’s guide for the SQL Server optimization question:
- Part I: Use Indexing
- Part II: Re-factor TSQLs and Apply Best Practices
- Part III: Apply Advanced Indexing and Denormalization
- Part IV: Diagnose Database Performance Problems
- Part V: Optimize Database Files and Apply Partitioning (is on the way)
WPF: Data Virtualization
WPF: Data Virtualization article at CodeProject shows a different approach to the data virtualization for WPF ItemsControls – a collection class providing data virtualization with large data sets.
We need to do some profiling on our project, and I decided to evaluate JetBrains dotTrace Profiler 3.1. First of all, I have tried to profile the sample application included with the tool, and got really surprised when I saw the times reported – they were “randomly distributed” in the plus-minus billions of milliseconds range :). I couldn’t believe it! Looked for a solution on Google, but first few pages of the search results proved to be totally useless.
Fortunetely, I got “enlightment” at this point – I recalled that I had problems with WPF animations on my dual core AMD Athlon64 x2 processors because of system timers – they were not in sync between cores, and GetPerformanceCounter API was returning “floating” numbers instead of non-decreasing sequence, thus causing “jumpy” animations. The solution then was to install AMD Dual-Core Optimizer (its description talks about gaming, RDTSC, etc., so it is not necessarily obvious that the thing can help with WPF :).
I went and downloaded and installed the tool again, and voilaz – nice times in the profiler! :) Now, the problem is, that I am absolutely sure that I have already installed this tool few months ago when I hit the WPF problem. So, how could it be that the tool was not working, and I had to install it again? Honestly, I don’t know… Most likely, some new drivers or system updates have disabled or otherwise damaged the tool. Which brings me to the (rhetoric?) question: how can “normal” people use today’s computers (and technologies in general) with all this complexity?
Freewave is a free and open-source collection of popular image and signal processing routines designed to accelerate application development, debugging, and optimization on x86-class processor platforms. API is compatible with the Intel Integrated Performance Primitives (see SourceForge and AMD pages for more information).
Today’s Sites/Blogs
- On Measuring Performance by Sasha Goldshtein
- Why WPF Rocks (Custom Layout Panel Showcase) by Rudi Grobler – nice collection of panels. Rudi’s blog has a lot of interesting information about WPF
- Pete W’s Idea Book by Pete Weissbrod – interesting materials about WPF, data binding (inlcuding NHibernate), MVC/MVVM, etc.
- Agile-Friendly Test Automation Tools/Frameworks on Elisabeth Hendrickson’s Ruminations blog
- How to be a Programmer: A Short, Comprehensive, and Personal Summary by Robert L. Read. Absolutely must reading for any software developer (especially beginner).
- Execution in Kingdom of Nouns by Steve Yegge – despite the problem’s seriousness, the reading is fun!
- Computer Zen blog by Scott Hanselman (Senior Program Manager at Microsoft) – vast amount of info about LINQ, WPF, .NET, programming, tools, tricks, you-name-it.
Algorithms for the Masses
By accident found Algorithms for the Masses web-site and blog by Julian M. Bucknall (who is CTO at DevExpress). Plenty of interesting articles and posts, especially on algorithms and data structures (including their lock-free implementations).
The CLR Inside Out column of the MSDN Magazine has absolutely great article about .NET performance – “Measure Early and Often for Performance” (Part I, and Part II).
JIT Optimizations
Sasha Goldshtein’s JIT Optimizations article on the CodeProject shows some of the optimizations the JIT compiler is able to do and explains what is affecting them. Interesting.
WPF Performance and Tuning
- 2007.01.20 Optimizing WPF Application Performance from MSDN (it looks like the next version of the Kiran Kumar’s article mentioned below). And Performance Profiling Tools for WPF MSDN article is a nice introduction to all the WPF profiling tools (and there are many, as it turns out).
- Optimizing WPF Application Performance – great paper by Kiran Kumar [MSFT] (there is also related webcast about the subject)
- Tim Cahill – the WPF Perf Guy – nice blog about the WPF performance
- Perforator – nice tool for finding WPF performace bottlenecks. Execute
reg add HKLM\SOFTWARE\Microsoft\Avalon.Graphics /v EnableDebugControl /t REG_DWORD /d 1 /f
before starting target application and Perforator, and execute
reg delete HKLM\SOFTWARE\Microsoft\Avalon.Graphics /v EnableDebugControl /f
after finishing. - WPF-Pick Your API Abstraction – an article from Pablo Fernicola’s Personal Blog [MSFT]
