Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

.NET 4.5 in Practice: Bing

Download

Right click “Save as…”

.NET GC developer Maoni Stephens, Performance Architect Vance Morrison and Bing front end developer Mukul Sabharwal join us for a conversation about .NET 4.5 in practice.

We spent some time with the.NET 4.5 team earlier in the year. You can see the series of conversational interviews we did here.

The Bing front end is powered by .NET 4.5 and Windows Server 2012 RC. This constitutes a large number of servers doing a lot of work. How do some of the new .NET 4.5 features (like multi-core JIT and background GC) scale? Bing's a rather good test case for both .NET 4.5 and WS 2012 given the volume of requests it serves.

Topics include:

Pinning and Heap Corruption (and strategies for alternative approaches to pinning).

Multicore JIT

Performance tuning and PerfView

Background GC

As usual, this is conversation that happened as it did. There will be a few random turns, but roads lead to time well spent! Thanks for being sports, Maoni, Vance and Mukul!

Tune in. Enjoy

Tags:

Follow the Discussion

  •  You can see the series of conversational interviews we did here.

    Link not working, actually. 

  • ManuelManuel

    Watching this video, I had to wonder if all the GC and Jit perf issues are big concerns, why was .NET the best choice for the work?
    I would be interested if .NET has been the natural choice for Bing because it is such a massive application(for example, Google runs on native code / same for Facebook...)
    Is this because there is no ASP.native or are there other reasons to build a massive non-native application?

    I am pointing this out, because at work (@fortune 500 company), we use java and .net for all server applications and our main reason is developer productivity and not performance (most of our java and .net devs don't care much about efficiency).

  • Managed code developers that do not care about performance are just not developers.

    Thats why every day real developers have headaches because some monkeys thought "hey dude ill just make this work and go home to have a banana, because its just managed code".

    A good developer assures that the job he does is a well done job, else try another job, so we will all be more happy.

    PS: .NET can be made even more perfomant and bug free, of course that will require more work and many people are just to lazy and most of them never used an unsafe method for example if that would have produced a gain in performance. (my opinion Smiley ).

    In future of .NET languages i hope there will be more posibilities that tend to the power of C/C++, so you can explore the performance part also, that would give .NET a boost advantage over other languages.

  • @Manuel, @freeman1902

    Right tool for the right job. That's the key.

    Increasingly (and it has already reached that point for 99%* of applications, as exemplified by Bing), managed code will pay more dividends as the bottleneck continues to not be the CPU.

    One has to realize that while safe/managed code has overhead like array bound checks, for example -- these are often dwarfed by the applications memory access patterns, and code performance is generally dictated by locality of reference. And, if you're I/O-bound, you have a totally different set of problems to solve.

    But, of course, one can contest that this is not always true. Sometimes you are truly compute-bound like looping over an array that say fits inside the processor's fastest cache. Even in this case, it's not like the JIT-compiler is going to do something bizarrely different. It just has to be safe. Oh, and there is a time-component involved, because JIT-compiler optimization have to justify the time taken to generate the optimized code.

    Sigh, I digressed.

    Back to the question about Bing's GC and JIT improvements (TechNet blog post). The point I think the video is trying to drive home is that developing on an established framework, like .NET, gives you these "free gains". You didn't change a line of code, yet you reaped benefits.

  • There's also a strong case to be made for .NET in terms of how well-crafted and well-documented the framework is, and how many of the common tasks are made very easy by the framework.  

    So this has a couple advantages over most unmanaged languages:

    1. It's easier to write correct code.

    2. In general it requires less code to pull off most tasks.

    And then in a web server environment, more often than not the bottleneck is going to be in the database or data access side of things anyway.  So taking a small performance hit from using a managed language is probably not worth worrying about.  At least that performance hit is nowhere near that of something like Ruby.

  • See this blog post from the .NET Team, on the CLR GC Updates: http://blogs.msdn.com/b/dotnet/archive/2012/07/20/the-net-framework-4-5-includes-new-garbage-collector-enhancements-for-client-and-server-apps.aspx

Remove this comment

Remove this thread

close

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.