-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Use custom GC PAL for all GC build flavors #72684
Comments
Tagging subscribers to this area: @dotnet/gc Issue DetailsThe standalone GC is using custom PAL on Unix: https://github.com/dotnet/runtime/blob/main/src/coreclr/gc/unix/gcenv.unix.cpp The built-in GC using PAL from https://github.com/dotnet/runtime/blob/main/src/coreclr/vm/gcenv.os.cpp. This PAL runs on top Win32 emulated APIs that comes with extra overhead (extra tracking structures and extra locks). We have observed cases where this overhead is fairly significant. We should switch the default built-GC to use the custom PAL to eliminate the overhead of Win32 API emulation on Unix.
|
note that this extra overhead is contributing to the extra 64mb committed/working set on linux for regions. |
This is fixed on Unix. There is still work left to do to switch to the standalone PAL layer on Windows and delete all duplicated code. |
The standalone GC is using custom PAL on Unix: https://github.com/dotnet/runtime/blob/main/src/coreclr/gc/unix/gcenv.unix.cpp
The built-in GC is using PAL from https://github.com/dotnet/runtime/blob/main/src/coreclr/vm/gcenv.os.cpp. This PAL runs on top Win32 emulated APIs that come with extra overhead (extra tracking structures and extra locks). We have observed cases where this overhead is fairly significant.
We should switch the default built-in GC to use the custom PAL to eliminate the overhead of Win32 API emulation on Unix.
The text was updated successfully, but these errors were encountered: