How to Profile .NET Code Using the dotMemory Plugin in Rider
Having a profiling tool integrated into your IDE is an asset no developer can discount the value of. The undeniable convenience of being able to screen your app for performance issues on the fly is why the dotTrace profiler comes integrated into Rider. With our latest EAP build, we’re expanding on that convenience by introducing a built-in memory profiling tool. In this post, we’ll explore how to run memory profiling in Rider using the latest addition to this IDE’s plugin roster – dotMemory Profiler. Disclaimer: dotMemory Profiler is currently only available on Windows in Rid
How We Used dotMemory to Optimize dotMemory
dotMemory is a .NET memory profiler by JetBrains. My name is Ilya and I help develop the tool. I'd like to tell you a classical dogfooding story of how we optimized one of dotMemory's algorithms by using our own tools – dotMemory and dotTrace. We then improved it some more using dotTrace, and finished off the optimization process by using BenchmarkDotNet. I’d like to thank the authors of two articles, 1 and 2, which inspired me to share this story. It all began when a colleague messaged me in Slack about a problem he was experiencing with the dominator tree in dotMemory. The data
dotCover, dotMemory, dotPeek, and dotTrace 2021.3 Release!
dotCover 2021.3, dotMemory 2021.3, dotPeek 2021.3, and dotTrace 2021.3 have been released and are ready for downloading! Before diving into the feature set, we need to make an important announcement. Starting with the 2021.3 release, we have discontinued support for the x86 versions of dotMemory Standalone and dotMemory Portable. You can still use dotMemory x86 from the previous releases. Now, let’s take a quick look at the 2021.3 release updates in these tools. dotCover 2021.3 The dotCover command-line runner now works on computers with Apple silicon processors. It can p
The v2021.2 Releases for dotCover, dotMemory, dotTrace, and dotPeek Are Here!
Good news, everyone! We are happy to announce the release of the 2021.2 versions of dotCover, dotMemory, dotTrace, and dotPeek. Before diving into the feature set we’ve added in this release, there are a couple of important notes: Starting with the 2021.2 release of our .NET productivity tools, including dotCover, dotMemory, dotTrace, and dotPeek, we will require .NET Framework 4.7.2 or newer to be installed on your machine. Learn more here.We have changed the free trial period model for dotTrace and dotMemory from 5 days of actual use to 30 calendar days, which is the sta
Improved Allocation Details and Powerful Type Filters in dotMemory 2021.2 EAP
With the release of dotMemory 2021.2 around the corner, we thought we'd give you, our loyal JetBrains customers, a sneak peek at some new and exciting features. These newest improvements will make you become a memory maestro in no time! We re-worked the allocation analysis views. Allocations grouped by methods and by call tree add more powerful filter options, and show top allocated types and back traces. These views can be accessed easily with a floating button on the profiling timeline. Other filters now let you filter value types, types, methods, and namespaces. Let's have a look! DOW
Investigate memory issues with ease – Introducing real-time inspections in dotMemory Allocation Analysis
Memory issues can be challenging to diagnose, especially when we're under the stress of an extreme performance issue and unhappy users. Luckily, dotMemory 2021.1 users will appreciate the new and improved memory allocation analysis in our product's latest version. Using our new allocation analysis UI, we'll quickly locate those wasteful allocations bringing our application to a grinding halt. We'll spend seconds, not hours, investigating any memory issue. Let's see how. Timeline Intervals and Memory Allocations We'll start a new profiling session using dotMemory by adding a New Process Run an
dotTrace and dotMemory bring new home screen!
Longtime users of dotTrace and dotMemory may have noticed the brand new home screen that ships with version 2021.1. The change comes as part of our goal to make our products the best profiling tools on the market for all major desktop platforms (we're using Avalonia to make this cross-platform UI a reality). We redesigned the user interfaces to help developers jump right into a profiling session. Both products share some UI design elements that should help users transition seamlessly between the two profiling products. Not only do the UI's look similar, but dotTrace and dotMemory will share t
What Do These …<>+c… Classes Do in my Memory Snapshots?
There's nothing we love as much as user feedback. It is a priceless source of insights into how people use tools like dotMemory, what gets them excited – and what gets them confused. Over the last year we've received multiple questions from users seeing classes with ...+<>c... in their names. They said: "...in the object browser we have some instances of an object that ends with +<>c. I can't find any information what kind of objects this is and I hope that you can help me?" "What does +<>c mean? I am new to dotMemory." "I am looking at some "Survived Objects" and
How does my app allocate to LOH? Find out with dotMemory 2018.2!
If you're a long-term dotMemory user, you may have noticed the absence of big new features in dotMemory ever since we added support for memory dumps in 2017.2. Rest assured this is not because we've lost interest in memory profiling. The opposite is true: our team has been investing even more effort in this area, but most of the current changes are happening under the profiler's hood. One such changes is the way dotMemory collects and processes data in real time. This may lead to many new features in the future, but as of now, it has led to a couple of neat improvements. Both of them are re