.NET Blog

Free. Cross-platform. Open source. A developer platform for building all your apps.

Troubleshooting ASP.NET Core Performance Problems

This is a guest post by Mike Rousos I recently had an opportunity to help a developer with an ASP.NET Core app that was functionally correct but slow when under a heavy user load. We found a few different factors contributing to the app's slowdown while investigating, but the majority of the issues were some variation of blocking threads that...

Improve website performance by optimizing images

We all want our web applications to load as fast as possible to give the best possible experience to the users. One of the steps to achieve that is to make sure the images we use are as optimized as possible. If we can reduce the file size of the images then we can significantly reduce the weight of the website. This is important for various ...

RyuJIT Just-in-Time Compiler Optimization Enhancements

I'd like to tell you about some of the recent changes we've made as part of our ongoing work to extend the optimization capabilities of RyuJIT, the MSIL-to-native code generator used by .NET Core and .NET Framework. I hope it will make for an interesting read, and offer some insight into the sorts of optimization opportunities we have our ...
Comments are closed.0.NET

Profile-guided optimization in .NET Core 2.0

This post was co-written by Daniel Podder and Bertrand Le Roy. .NET Core 2.0 introduces many new optimizations that will make your code even faster. A lot of work has been done in the base class library to improve performance, but in this post, we'd like to talk about a specific category of optimization: profile-guided optimization (or PGO...
Comments are closed.0.NET

Performance Improvements in RyuJIT in .NET Core and .NET Framework

RyuJIT is the just-in-time compiler used by .NET Core on x64 and now x86 and by the .NET Framework on x64 to compile MSIL bytecode to native machine code when a managed assembly executes. I'd like to point out some of the past year's improvements that have gone into RyuJIT, and how they make the generated code faster. What follows is by no...
Comments are closed.0.NET

Performance Improvements in .NET Core

Update (2017/06/12): Added BenchmarkDotNet blog post link. There are many exciting aspects to .NET Core (open source, cross platform, x-copy deployable, etc.) that have been covered in posts on this blog before. To me, though, one of the most exciting aspects of .NET Core is performance. There's been a lot of discussion about the ...

December 2016 Update for .NET Core 1.0

Today, we are releasing a new set of reliability and quality updates for .NET Core 1.0. This month's update is our second Long Term Support (LTS) update and includes updated versions of multiple packages in .NET Core, ASP.NET Core and Entity Framework Core. We recommend everyone on the 1.0.* LTS track move to this update immediately. How to ...
Comments are closed.0.NET

Are you GLAD?

Holidays are almost upon us. Last year around Christmas time I wrote a set of GC ETW blog entries to help with diagnosing GC heap related issues. This year I want to discuss taking that a (big) step further and making an SDK that does the analysis for you using these ETW events - so before I leave for vacation I’d like to share with you ...
Comments are closed.0.NET

Allocating on the stack or the heap?

A recent discussion prompted me to write this blog entry. The question there was “when should I allocate something on the stack vs on the heap?”. I searched around and there are plenty of articles that talk about *what* gets allocated on the stack vs on the heap, but not how you should decide what to allocate on the stack vs heap. ...
Comments are closed.0.NET

Application Insights for ASP.NET 5 – you’re in control

ASP.NET 5 apps can now be monitored for performance and usage with Visual Studio Application Insights. The composability of components in ASP.NET 5 makes it very easy to integrate telemetry modules into your app design in a flexible way. With the feedback you get about the performance and effectiveness of your app in the wild, you can make ...