A Thread - a guideline doc for memory performance analysis for #dotnet#dotnetcore
For the past few weekends I've been working on a (long) document that aims to help you with finding efficient approaches to mem perf problems.
https://t.co/jpYnkxt3Js
hi folks! it’s been quite a while since I had time to write a blog post. with the upcoming .NET 10 release, I’m finally sharing more details on DATAS and tuning tips you might find useful. check it out here:
https://t.co/aOGw8g5WDd
@djcp86@davidfowl@dank_army@dariogriffo@konradkokosa if you hit problems, please feel free to open an issue in the runtime repo on GH (I don't look at X much these days - I was informed of your post by my kind coworkers :-)). I'm still improving it in 10.
@davidfowl@dank_army@dariogriffo I only ported functional changes back to 8, not tuning changes (too much to port). for anyone who wants to try it out, please either try out 9 or get the clrgcexp.dll from 9 and use it with your 8 SDK by replacing the GC with the GCName.
recently we worked with a team that specified only the provider name in dotnet-trace without keywords/level. dotnet-trace will include ALL keywords on VERBOSE level. this can easily degrade perf. DotNETRuntime provider will also induce GCs (due to the GCHeapCollect keyword).
@StudentDanLuis the name of the runtime counter provider is System.Runtime. this is mentioned here https://t.co/1kISv04Yym albeit not obvious that's the name of the provider.
I've requested the diagnostics folks to the change the default: https://t.co/A9KVR2FMDY. note that this means no keywords enabled on informational level.
if you use PerfView, have you noticed the GCTriggeredStacks cmd arg? to see callstacks for induced GCs, use this lightweight commandline -
PerfView /GCCollectOnly /GCTriggeredStacks /nogui collect
(this is less verbose than what mem-doc currently shows)
profiling tip - if you upgrade to a newer version of a product and observe perf regression, make sure to grab some perf traces before you revert (if you revert all usage and can't easily get traces later). without comparative traces the investigation will be much harder
@fiigii a major problem is interesting data to look at usually isn't shareable publicly. to make it shareable it would require a lot of time (for someone inept at video editing like me) to post process😅
@chnasarre@konradkokosa@KooKiz also probably better to ask questions like this in email instead of on twitter. in general I look at twitter very infrequently these days (I just happened to look because I made a tweet myself recently)🙂