Developers Academy II: DEV409 Psychic Performance and Debugging 101
I prepared a deck of slides for the upcoming Developers Academy (November 27, Airport City).
You can find it at the following link, the ZIP is approximately 4.75MB and it contains a PowerPoint presentation in Office 2003 (PPT) format. (I wasn't able to upload it to the blog, so I resorted to a third-party file hosting service. Please bear with me/them for the annoying 30-seconds delay, and the possibly slow download speed.) This download link will become unavailable in 14 days (December 6).
[Updated: Nov 24] There was something wrong with the upload service I used. Please use this link for the download (still 4.75MB with a PowerPoint presentation in Office 2003 format).
[Updated: Nov 27] The final deck of slides presented at the actual session, including the demo code, is now available to download here (Office 2007 format this time). Also note the post announcing this download.
[Updated: Dec 19] If you missed the session, you can always tune to the video recording.
Please note that this is not the final set of slides I am about to show at my session; instead, it's just a teaser for those of you considering to join me. After the session, the presentation, demos and video recording of the entire thing will be available on the web.
The session code is DEV409. It will be held in the Golan room (floor -1) at 16:15, just after Alon's "deep dive" lecture on Windows Server 2008.
The demos I will be showing will focus on a sample application experiencing the issues outlined below. We will be diagnosing, debugging and solving these issues throughout the session.
You get a phone call in the middle of the night because ...
-
Once in a while, a memory leak begins to manifest under heavy load on the application.
-
Under even heavier load, the application spends too much time in the GC, hindering the performance of critical business processes.
-
After a certain amount of time, the application hangs without processing any further requests. (Obviously this would always happen in the middle of the night, during the weekend, when you're on vacation with your family and all the other developers are abroad and unable to support this.)
-
The day before you just checked-in a change where you removed a few unused legacy fields from a commonly used data structure. Suddenly the application runs 25% slower than usual.
-
Adding additional processing power to the system didn't increase its overall throughput. You're using multiple threads, and are using them correctly. What the heck?
(By the way, feel free to comment or contact me through the blog's contact form if you have any other interesting scenarios.)