-
Enhancement
-
Resolution: Fixed
-
P4
-
20
-
b22
Currently G1 discriminates cost per bytes when marking is active and marking is not.
This is a wrong distinction: there is no difference in GC work (object copying work) during concurrent mark vs. outside because there is not a single difference in both paths.
The only difference I can think of is that during concurrent start there is some additional marking of objects referenced by roots going on (and only those), but that's not what is being predicted here.
However, statistical analysis indicates that there is a difference between young only and mixed gc phase; in some (many?) applications this is almost equal to during marking vs. outside (i.e. constant marking cycles), this is why I think this has been implemented this way earlier.
This is a wrong distinction: there is no difference in GC work (object copying work) during concurrent mark vs. outside because there is not a single difference in both paths.
The only difference I can think of is that during concurrent start there is some additional marking of objects referenced by roots going on (and only those), but that's not what is being predicted here.
However, statistical analysis indicates that there is a difference between young only and mixed gc phase; in some (many?) applications this is almost equal to during marking vs. outside (i.e. constant marking cycles), this is why I think this has been implemented this way earlier.