-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Survived Memory #1596
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Survived Memory #1596
Conversation
c88f7bf
to
db259cd
Compare
.NET Core 3.1 and 5.0 measurement issue: dotnet/runtime#45446 |
82ec67e
to
fa943b3
Compare
3e88680
to
116b4e0
Compare
cac6356
to
b3f2aaf
Compare
Looks like measurement errors are fixed in .Net 7 as of dotnet/runtime#67160. |
16a0665
to
5a9f217
Compare
5a9f217
to
a51fe70
Compare
51d25f1
to
73fffb5
Compare
7b8667d
to
91027de
Compare
…rst benchmark run.
91027de
to
0d6500f
Compare
Looking forward to this feature 👀 |
Unfortunately, survived memory is not so simple for the framework to measure automatically. The first invocation will include jit allocations and static memory, and the second invocation will miss pooled objects. When I used this in my own benchmarks (https://github.com/timcassell/CSharpAsynchronousBenchmarks), I took care to measure only pooled objects by adjusting the benchmarks in a complicated way. I don't think it's good for users to have to do that to get useful measurements. I think this will be better served by #784, so users can capture the survived memory that matters to them. |
In an attempt to address my question on #1579, I worked on this.
I added an optional
includeSurvived
flag onMemoryDiagnoserAttribute
and--memorySurvived
command line option to capture the survived memory from a benchmark run.