Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

Don't compact LOH just because a heap_hard_limit exists #23366

Merged
1 commit merged into from Mar 22, 2019
Merged

Don't compact LOH just because a heap_hard_limit exists #23366

1 commit merged into from Mar 22, 2019

Conversation

ghost
Copy link

@ghost ghost commented Mar 20, 2019

Don't compact LOH just because a heap_hard_limit exists

This is based on a perf test with 100% survival in a container, before
and after #22180. GC pause times were greater after that commit.
Debugging showed that the reason was that after, we were always doing
compacting GC, and objects were staying in generation 1 and not making it
to generation 2. The reason was that in the "after" build,
should_compact_loh() was always returning true if heap_hard_limit was
set; currently if we do an LOH compaction, we compact all other
generations too. As the comment indicates, we should decide that
automatically, not just set it to true all the time.

This is based on a perf test with 100% survival in a container, before
and after #22180. GC pause times were greater after that commit.
Debugging showed that the reason was that after, we were always doing
compacting GC, and objects were staying in generation 1 and not making it
to generation 2. The reason was that in the "after" build,
`should_compact_loh()` was always returning true if heap_hard_limit was
set; currently if we do an LOH compaction, we compact all other
generations too. As the comment indicates, we should decide that
automatically, not just set it to true all the time.
@ghost ghost requested a review from Maoni0 March 20, 2019 19:23
@dnfclas
Copy link

dnfclas commented Mar 20, 2019

CLA assistant check
All CLA requirements met.

@Maoni0
Copy link
Member

Maoni0 commented Mar 22, 2019

@dotnet-bot test Ubuntu x64 Checked Innerloop Build and Test

@Maoni0
Copy link
Member

Maoni0 commented Mar 22, 2019

@dotnet-bot test Ubuntu arm Cross Checked no_tiered_compilation_innerloop Build and Test

@ghost ghost merged commit 513ccfc into dotnet:master Mar 22, 2019
@ghost ghost deleted the heap_hard_limit branch March 22, 2019 20:14
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
Don't compact LOH just because a heap_hard_limit exists

Commit migrated from dotnet/coreclr@513ccfc
This pull request was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
2 participants