dotnet / dotnet/runtime

Startup time of small workloads

Open
#120,407 1 comment 6 reactions 1 assignee Claimed by @agocke View on GitHub
area-VM-coreclr tenet-performance User Story
Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Description

Lists of ideas for startup time improvements of small workloads identified during investigation of https://github.com/dotnet/runtime/issues/120288:

- [x] Expensive dictionary in socket error map (fixed by https://github.com/dotnet/runtime/pull/120364)
- [x] Remove redundant Guid parsing in RuntimeEventSource's static constructor (fixed by https://github.com/dotnet/runtime/pull/120413)
- [x] Expensive GUID lookup/generation in EventSource initialization (https://github.com/dotnet/runtime/pull/120422 and https://github.com/dotnet/runtime/issues/28290)
- [x] R2R rejected for methods implemented using SIMD (https://github.com/dotnet/runtime/issues/120367)
- [x] Load ICU more lazily (https://github.com/dotnet/runtime/pull/120685)
- [x] R2R code missing for static interface methods (https://github.com/dotnet/runtime/issues/120405)
- [ ] 1000 more types loaded in .NET 10 vs. .NET 8 (https://github.com/dotnet/runtime/issues/120406)
- [ ] Resolution of static virtual methods in the JIT interface is O((N + M)*C) where N is the number of MethodImpl records on a type, M is the number of MethodImpl records on all interfaces which are implemented on a type, and C is the number of calls in the method being jitted.
- [ ] Missing profile data for libcoreclr.so on Linux (the profile data seems to have methods for libclrjit.so only)
- [ ] Startup regression for the first 25 invocations https://github.com/dotnet/runtime/issues/120681
- [ ] R2R for Vector64/128/256/512 instantiations https://github.com/dotnet/runtime/issues/120816
- [ ] ASP.NET shared framework is missing PGO data
- [ ] Merge debugger and diagnose server threads into one
- [ ] Eliminate Win32 PAL thread (part of #31721)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.