#399 Optimizing CPU-bound and memory-bound .NET applications: 11 best practices


Powerful DevOps automation

Octopus Deploy easily automates your deployments and operations runbooks from a single place, helping you ship code quickly and reliably. Class-leading support for .NET applications on Windows Servers and Azure.

this week's favorite

Optimizing CPU-bound and memory-bound .NET applications: 11 best practices

Everything has its limit, right? A car can drive only so fast, a process can use only so much memory, and a programmer can drink only so much coffee. Our productivity is limited by our resources, but we have the ability to make better or worse use of them. The goal should be to use each of our resources as close to its limit as possible. We want to use every bit of our CPU and memory or else we're over-paying for expensive machines. But if we use too much of those resources, we run the risk of causing performance problems, unavailable service issues, and downright crashes. It's a tricky game to play and that's what we're going to talk about today.

Deep introduction to .NET MAUI handlers architecture

In my last article, I did a deep introduction to .Net MAUI. For my first article of the year, we will have an introduction to .NET MAUI handlers. If you are a Xamarin dev, you should know about the “Renderers” architecture. Well, handlers are what replaced renderers when Xamarin Forms evolved to .NET MAUI. But there is so much more about handlers, and today we are here to explore that.

Favor real dependencies for unit testing

Which dependencies should be present in your code base? This article suggests an answer to that question.

State of the Windows Forms Designer for .NET Applications

After reading this blog post you will be familiar with the underlying problems the new WinForms designer is meant to solve and have a high-level understanding of the primary components in this new approach. Enjoy this look into the designer architecture and stay tuned for future blogs!

Get C# metadata from a call site

C# is a statically typed language, and one of the greatest derived strengths is our ability to ask questions around our code. Whether you love it or hate it, reflection is a critical part of the .NET stack, and when you program long enough, you’re bound to run into it. What if I told you there are other ways to get information about your executing application? In this post, we’ll take a look at the Caller* family of attributes, which will allow you to get information like file path, line number, member name, and argument expression. You can find all of these methods in the System.Runtime.CompilerServices namespace.


Free Course: Try IAC with Justin Mitchel

Learn the fundamentals of leading Infrastructure as Code (IaC) tools by deploying Docker-based Python web applications. Over 13 hours of free video content covering Terraform, Ansible, Salt (SaltStack), Puppet Bolt, and Chef. Available Now.


Would you like to become a sponsor and advertise in one of the issues? Check out our media kit and get in touch.