Skip to content

Conversation

@no-defun-allowed
Copy link
Collaborator

Tracing is exceedingly slow on biojava if we don't test-and-test-and-set. My guess is that we get cache line ping-pong when many workers try to mark the same popular objects; but every policy I checked has some sort of test-and-test-and-set pattern, and this seems like a common sense thing to do.

Plotty for a detailed before-and-after, although both configurations have some other changes to Compressor which I will upstream later. But this change still speeds up upstream - here is before:

============================ MMTk Statistics Totals ============================
GC	time.other	time.stw	total-work.time.min	total-work.time.total	total-work.time.max	total-work.count	
14	8575.41	14920.23	inf	0.000	-inf	0	
Total time: 23495.63 ms
------------------------------ End MMTk Statistics -----------------------------

And after:

============================ MMTk Statistics Totals ============================
GC	time.other	time.stw	total-work.time.total	total-work.time.max	total-work.time.min	total-work.count	
14	8826.60	9548.96	0.000	-inf	inf	0	
Total time: 18375.56 ms
------------------------------ End MMTk Statistics -----------------------------

Tracing is exceedingly slow on biojava if we don't test-and-test-and-set.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant