dotMemory Standalone 2021.3 – 32-bit Version Deprecation
Starting with the next dotMemory Standalone 2021.3 release, we will no longer ship a 32-bit (x86) version. On 32-bit operating systems, you can capture snapshots using the dotMemory Command Line Tools, and analyze them with dotMemory on a 64-bit operating system.
In this blog post, we’ll explain why we are making this change, and what it means for you.
Why is this changing?
To analyze memory snapshots, dotMemory heavily relies on memory-mapped files. They come with a number of benefits:
- High-performance I/O operations. Snapshot data is stored and loaded from disk by the operating system, which gives us maximum performance when analyzing snapshot data.
- High-performance array walking operation. Most of our analysis is based on walking the data in a snapshot. Being able to operate on raw memory ensures there is minimal overhead.
- To decrease garbage collection (GC) pressure. The .NET GC is not well suited for working with large arrays. By moving them into native memory, the garbage collector does not have to track that memory, which leads to better performance of other parts of dotMemory.
There is, however, a drawback to using memory-mapped files: a lot of address space is required. On 32-bit operating systems, this means dotMemory is constrained in what it can do.
On a 64-bit operating system, address space is virtually unlimited. In theory, around 18 exabytes. Even with our computer memory nowhere near that theoretical limit, having 64-bits of address space lets dotMemory analyze complex object graphs with hundreds of millions of objects!
At the same time, ever since Windows 7, usage of 32-bit versions of Windows is declining. The Steam Hardware Survey shows that most Windows users are on 64-bit versions of the operating system. Since the May 2020 update of Windows 10, Microsoft started phasing out 32-bit versions of the operating system for certain groups of customers (OEMs). And with the newly announced Windows 11, the system requirements no longer mention a 32-bit (x86) version of the operating system.
Combining these two reasons, updating the requirements for dotMemory Standalone is a logical next step. We will no longer ship a 32-bit (x86) version, starting with dotMemory Standalone 2021.3.
By supporting only 64-bit operating systems, our profiler can make better use of available system resources, and provide a smoother experience when analyzing snapshots.
What does this mean for me?
If you are profiling applications running on a 64-bit operating system, or you are analyzing snapshots on a 64-bit operating system, you’re already using the 64-bit version of dotMemory and you will not be impacted by this change.
When you are running 32-bit processes on a 64-bit operating system, you can use the 64-bit version of dotMemory Standalone 2021.3 to capture and analyze snapshots.
If the applications you are profiling are running on a 32-bit operating system, you can use the dotMemory Command Line Tools to capture snapshots, and then analyze them with the 64-bit version of dotMemory Standalone 2021.3. If that is not an option, you can use existing versions of dotMemory Standalone.
If this change affects your current workflow, please get in touch!
Subscribe to Blog updates
Thanks, we've got you!
A Second Set of Bug Fixes: ReSharper 2023.2.2 and Rider 2023.2.2 Are Here!
ReSharper and Rider have just received their second set of bug-fix updates for the 2023.2 release! Let’s take a look at the most important issues that have been resolved in this update. ReSharper For the full list of resolved issues, please refer to our issue tracker. …
ReSharper 2023.3 Early Access Program Begins!
Hello everyone, The Early Access Program for ReSharper 2023.3 has started! Before you download the first EAP build, let’s take a look at what is in store for you. Working with aliases With this first EAP build, we are introducing support for C# 12’s ability for alias directives to refer…
Rider Kicks Off the Early Access Program for the 2023.3 Release!
The Early Access Program for Rider 2023.3 has just begun with the release of the Rider 2023.3 EAP 1 build. There are several ways to get your hands on it: Download and install them from our website. Use the Toolbox App. Install this snap package from the SnapCraft store if you’re using a c…
Eager, Lazy and Explicit Loading with Entity Framework Core
Entity Framework Core (EF Core) supports a number of ways to load related data. There’s eager loading, lazy loading, and explicit loading. Each of these approaches have their own advantages and drawbacks. In this post, let’s have a quick look at each of these ways to load data for navigational prope…