-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Add documentation for hot/cold splitting #73029
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
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,173 @@ | ||||||
| # Hot/Cold Code Splitting | ||||||
|
|
||||||
| This document describes the current state of hot/cold splitting in the JIT. | ||||||
|
|
||||||
| Hot/Cold splitting is a PGO optimization where generated code is split into frequently-executed ("hot") and | ||||||
| rarely-executed ("cold") parts and placed in separate memory regions. Increased hot code density better leverages | ||||||
| spatial locality, which can improve application performance via fewer instruction cache misses, less OS paging, and | ||||||
|
||||||
| spatial locality, which can improve application performance via fewer instruction cache misses, less OS paging, and | |
| spatial locality, improving application performance via fewer instruction cache misses, less OS paging, and |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(you get the idea)
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think somebody could get confused by the mixed use of tense here and not be entirely sure what the "current state" actually is.
Consider sectioning this part off as ## Background and describing just the before state in past tense.
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Without runtime support for hot/cold splitting in .NET Core yet, testing the JIT's existing hot/cold splitting support | |
| Without runtime support for hot/cold splitting in .NET as of summer 2022, testing the JIT's existing hot/cold splitting support |
Nit: We have retired .NET Core as the name a few years ago. We are calling the product just .NET now.
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| In the absence of PGO data, the JIT assumes exceptions occur rarely to justify moving handlers to the cold section. | |
| In the absence of PGO data, the JIT assumes exceptions occur rarely; this justifies moving handlers to the cold section. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hot/cold splitting is not strictly Profile Guided Optimization. It is quite effective even without profile data.