-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Description
We currently enable VXSORT in GC under following ifdefs:
I experimentally modified the ifdef by adding && defined(SERVER_GC). With that, the size of a selfcontained NativeAOT hello world went down by ~10%. We currently build two flavors for NativeAOT runtime - one with the server GC and one with the workstation GC. The server GC is opt in through the publicly documented ServerGarbageCollection MSBuild property and not the default.
| VXSORT | No VXSORT | |
|---|---|---|
| Default | 1.41 MB | 1.30 MB |
| InvariantGlobalization | 1.19 MB | 1.08 MB |
(It is likely the InvariantGlobalization case will be the default for projects created with dotnet new console -aot.)
This feels like a pretty good saving. The question is - would this be a compromise? Is having WKS GC with heaps large enough that we would use VXSORT a common scenario? We want to have comparable perf with Native AOT, but also size is one of the things we take seriously.
Cc @dotnet/gc @dotnet/ilc-contrib
Metadata
Metadata
Assignees
Labels
Type
Projects
Status