-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
[Question] CoreCLR low memory footprint configuration #9779
Comments
That might also affect the shared ArrayPool as it caches various types up to a limit of X |
We do have various build config switches that lets you configure this. Are you asking whether we can have one build switch that sets multiple of other build switches?
The ArrayPool needs to be integrated with the GC so that it does not leak memory: https://github.com/dotnet/corefx/issues/25841 or https://github.com/dotnet/coreclr/issues/7747. The GC has configurable policies on what to optimize for (#15469). Once the ArrayPool is integrated with the GC, this should naturally fall out. |
@jkotas I'm asking about possibility to add more optimization which decrease memory consumption to upstream. It's not interesting for server applications (as I guess main target for Microsoft) but fit well for smartphones. |
Majority of these can be just configurable policies. They do not need to be runtime build-time switches. For example, you can choose between server GC and workstation GC for netcoreapp today. Different templates have different defaults for these switches. Console apps default to workstation GC and ASP.NET default to server GC. Similarly, the template for Tizen apps can have different defaults. The code-pitching is outlier because of it is not implemented pay-for-play and does not work well with debuggers/profilers, so that one is a build switch. |
Right, build-time switches aren't needed for things like GC. But what if want to remove relocation of P.S. |
These can be command line option for crossgen. Also, for PIC code - I think we would likely want to make it the default. |
Due to lack of recent activity, this issue has been marked as a candidate for backlog cleanup. It will be closed if no further activity occurs within 14 more days. Any new comment (by anyone, not necessarily the author) will undo this process. This process is part of our issue cleanup automation. |
We are applying CoreCLR for devices with low RAM and interesting to reduce application's memory consumption. But as you understand such kind of optimizations decrease overall performance usually.
So there is idea to make CoreCLR configuration which enable some JIT optimization (like JIT pitching) or disable (like inlining), which also enable some runtime optimizations which decrease memory consumption.
Is it possible to merge such configuration to upstream? May be do you have already some ideas or proposal for it?
@jkotas @janvorli @BruceForstall
cc @Dmitri-Botcharnikov @gbalykov @kvochko @sergign60 @mlabiuk
The text was updated successfully, but these errors were encountered: