Open
Description
When running the following benchmark, it will either complete in 25 seconds or 60 seconds. From about 30 iterations of the benchmark, ~40% of the time it'll take 60 seconds to finish.
vary: coreclr
test_executables:
defgcperfsim: C:\foo\performance\artifacts\bin\GCPerfSim\release\netcoreapp5.0\GCPerfSim.dll
coreclrs:
a:
core_root: C:\foo\net6\artifacts\tests\coreclr\windows.x64.Release\Tests\Core_Root
options:
default_iteration_count: 10
default_max_seconds: 300
collect: thread_times
common_config:
complus_gcserver: false
complus_gcconcurrent: false
benchmarks:
2gb_pinning:
arguments:
tc: 1
tagb: 50.0
tlgb: 2
lohar: 0
pohar: 0
sohsr: 1000-1000
lohsr: 152400-152400
pohsr: 1000-1000
sohsi: 50
lohsi: 0
pohsi: 0
sohpi: 50
lohpi: 0
sohfi: 0
lohfi: 0
pohfi: 0
allocType: reference
testKind: time
scores:
speed:
FirstToLastGCSeconds:
weight: 1
PauseDurationMSec_95P:
weight: 1
(note that the values for sohsr
, lohsr
, and pohsr
are set to a single value, but kept as a range to make the script work)
From Perfview's gc stats, it looks like at around gc collection # 3470, we pin about 15k objects.
- In the iterations that take 25 seconds, after this 15k pinned object event, we continue doing gen0 and gen1 collections, with no more events pinning 15k objects.
- However, in the 60 second iterations, after this initial 15k pinned object event, we keep doing only gen1 or gen2 collects and the number of pinned objects always rebounds to 15k or more before every gen2 collect.
Thanks
Metadata
Metadata
Assignees
Labels
No labels