Replies: 2 comments 2 replies
-
Does the ARM-based AWS Graviton instance have the same specs as the x64 instance? Same number of cores and same amount of available memory? GC tends to take advantage of available resources when it is beneficial. If you run on a machine with more cores, GC may decide to use more memory to keep all cores occupied. |
Beta Was this translation helpful? Give feedback.
-
There might also be a difference in L3 cache sizes between the different hardware configurations, which affect some internal GC heuristics to help optimize allocation costs. It might be worth setting DOTNET_GCgen0size=1E00000 env. var on both configs to check if that makes things comparable with x64. Some considerations:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi,
I've noticed that when running the same .NET application on an ARM platform, memory usage appears to be significantly higher than on an x64 platform. Here's an example showing increased memory usage after migrating to an ARM-based AWS Graviton instance:

To investigate further, I created a minimal .NET application and ran it inside a Docker container on both AMD64 and ARM64 platforms. Here’s the memory usage comparison:

AMD64:
ARM64

You can find the test app here:
IncreasedMemoryTestApp.zip
Steps to Reproduce:
Is it expected for .NET applications to use more memory on ARM64 than on x64?
Are there known differences in memory management or GC behavior on ARM that could explain this?
Also, any guidance on how to properly determine soft and hard memory limits in such cases to prevent out-of-memory exceptions would be greatly appreciated.
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions