background preloader


Facebook Twitter

On Managed Code Performance. My personal turning point on the importance of managed code was in September 2001, when the NIMDA worm absolutely crushed our organization.

On Managed Code Performance

It felt like a natural disaster without the "natural" part-- the first notable port 80 IIS buffer overrun exploit. We got literally zero work done that day, and the next day wasn't much better. After surveying the carnage first hand, I immediately saw the benefit of languages where buffer overruns weren't even possible. Managed code, of course, isn't free.

All that bit-twiddling was there for a reason-- to squeeze every last iota of performance out of your 386 and 486. How is the performance of the managed version of Quake II? David Notario, who works in Microsoft's CLR JIT compiler group, with a little demo scene coding on the side, posted this interesting message with more detail on the performance of Managed Quake II: This version doesn't use any 3D hardware acceleration at all, which is good. I wonder what Michael Abrash is up to these days.


WPF. Thread Management In The CLR. CLR Inside Out Thread Management In The CLR Erika Fuentes and Eric Eilebrecht This column is based on prerelease versions of the CLR Threading System and the Task Parallel Libraries.

Thread Management In The CLR

All information is subject to change. The ongoing technological evolution from single-core to manycore architectures is bringing great benefits. Using multiple cores does bring about new problems, however. Threading in the CLR is an example of a concurrent environment where many factors (such as those introduced by multiple-core architectures) can influence the behavior and performance of concurrency. In this column, we will describe some of the common issues developers encounter and the important factors to be considered when tuning multithreaded managed code, particularly in multiprocessor hardware. Common Issues in Concurrency Most software was designed for single-threaded execution.

Fairness vs. Lock Contention Concurrent environments can experience frequent lock contention for various reasons. Noise. Teaching - Advanced .Net. Using the Reliability Features of the .NET Framework. High Availability Keep Your Code Running with the Reliability Features of the .NET Framework Stephen Toub This article is based on a prerelease version of the .NET Framework 2.0.

Using the Reliability Features of the .NET Framework

All information herein is subject to change. Do you write reliable managed code? Regrettably, that's not the whole story. As a primary example of why this is important, starting with the SQL Server™ 2005 release, SQL Server is able to host the common language runtime (CLR), allowing stored procedures, functions, and triggers to be written in managed code. Villainy For me, the best drama involves the misunderstood antagonist, the rival who you might root for if the situation were different. An OutOfMemoryException is thrown during an attempt to procure more memory for a process when there is not enough contiguous memory available to satisfy the demand. Debugging .NET Applications. MSDN Library Design Tools Development Tools and Languages Mobile and Embedded Development Online Services patterns & practices Servers and Enterprise Development Web Development This content has been moved... 19 out of 26 rated this helpful - Rate this topic Show: © 2014 Microsoft.

Debugging .NET Applications

Please help us improve Microsoft is conducting an online survey to understand your opinion of the Microsoft Developer Network (MSDN). Privacy Statement. Where's your leak at? [Using WinDbg, SOS, and GCRoot to ... In my last post, I explained how it was possible for "hidden" event handlers to introduce memory leaks and showed an easy way to prevent such leaks.

Where's your leak at? [Using WinDbg, SOS, and GCRoot to ...

I used a sample application to contrast a leaky implementation with one that uses the WeakEventListener class (included as part of the post) to avoid leaking on Silverlight. The changes required to patch the leak were fairly minimal and the entire process was pretty straightforward. But I glossed over one important point... What if you don't know the source of the memory leak in the first place? Knowing how something is leaking is the first step to fixing it, and the web has some great resources for learning more about tracking down managed memory leaks in WPF and Silverlight applications. As luck would have it, there are also a number of fine tools available to help find managed memory leaks.

Now that we're ready to go, let's remind ourselves what the demo application looked like: First, we'll load the SOS debugging extension: 0:012> ! Background Garbage Collection in CLR 4.0. Yesterday I found this really nice Channel 9 interview with Maoni Stephens (Dev Owner of the CLR GC) and Andrew Pardoe (Program manager for the CLR GC) where they talked about the new Background GC in CLR 4.0.

Background Garbage Collection in CLR 4.0

She also talks about it here and there is not much value in me repeating what she already says there but basically the main points of the video and the post are: Concurrent GC is being replaced by Background GC in CLR 4.0 Concurrent GC is the mode of the GC that you use in desktop applications for example. The goal of the concurrent GC is to minimize pause time, and it does so by allowing you to still allocate while a GC is in progress (hence the concurrent part).

Concurrent GC is only available in workstation mode. In server mode (which is what you use in ASP.NET for example when you have multiple processors/cores), simplified all managed calls are paused while in a GC, which means that you can’t allocate anything. The Architecture Journal. Demystifying Microsoft Intermediate Language.