<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" id="owaParaStyle"></style>
</head>
<body fpstyle="1" ocsi="0">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hi guys,
<div><br>
</div>
<div>I am benchmarking CMS collector and found it strange that there are many objects left in remark phase.</div>
<div><br>
</div>
<div>When I check the issue again by only running foreground CMS (I changed the source code a bit to force CMS running in foreground), so there is no promotion during collecting (so no objects marked during Preclean and Abortable Preclean phase). Even in this
case, I found that there are still many objects left in remark phase (in lusearch and tomcat in Dacapo benchmark, they are 10 times and 1/3 of number of objects marked in concmarking phase, while in suflow, they are just about 100 objects/refs). Most (maybe
ALL) of these objects marked in remark phase were processed by refProcessingWork(). In turn, this refProcessingWork() run in single thread mode. The performance was reduced a lot because of this.</div>
<div><br>
</div>
<div>My questions are:</div>
<div>1. What kinds of references were processed by refProcessingWork()? weak and soft ref? what are exactly they are?</div>
<div>2. While I only run CMS in stop-the-world, why are there still many objects left to be processed by remark, in particular here is refProcessingWork()? Why aren't these references/objects processed in concurrent marking phase?</div>
<div><br>
</div>
<div>Best,</div>
<div>-Nhan Nguyen</div>
</div>
</body>
</html>