background preloader

.Net

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.

WWF

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. 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. 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. MSDN Library Design Tools Development Tools and Languages.

The Architecture Journal

Demystifying Microsoft Intermediate Language.

WCF