Performance

“The big wins we realized at the CLR level are just noise compared to other performance problems in the applications.  With just a few days of work our pref team was able to improve the performance of one of these in house applications more significantly than all the CLR level improvements combined.  Their findings are published here.   This is NOT because the app developers are a bunch of clowns.  Rather it is because, as hard as we tried in V1, there were still some places where the design of the platform leads them down the wrong path...More generalized, it is the key point of good API design.  We should build APIs that steer and point developers in the right direction.  Types should be defined with a clear contact that communicates effectively how they are to be used (and how not to).  I am not just talking about the docs and samples (although those are good) but in the design of the APIs.  For example, give the “pretty” name to the types most developers should use (ie. “Foo” and “FooBase”).  “ [1]

This is so true. Many times the biggest culprit is just some rouge SQL queries that need to be cached or optimized. CLR optimization isn't going to do much for you if that is the case. However, the framework itself does not promote strong architectures like you would have if you were using some Java based frameworks (for instance, the use of ASPX files does not really provide you with any good MVC support). Of course, this does mean that the bar for entry is much lower and lots more people can get up to speed and write their apps without having to go read Gang of Four first... but it can be annoying when you are 70% of the way through a large project and begin to realize that many things have become very hard to manage. So, I definately agree with Brad here. Some times, the path of least resistance that the current framework makes so enticing can wreak havoc on an otherwise good plan.

[1] The Pit Of Success. Brad Abrams. http://blogs.gotdotnet.com/BradA/permalink.aspx/b7a0cf5c-a283-4f95-a508-819102d2feae

No Comments