Improve the card table scan.
Instead of scanning the table on card at a time, leverage a few observations to make the scan somewhat more efficient. First, fewer than 1% of cards are dirtied during the concurrent mark. We can scan the card table by words instead of inspecting cards individually. Second, dirtied cards tend to appear in clusters and are often adjacent to one another. Instead of starting scans at each dirty card, we scan the objects on consecutive cards together by resuming the scan at the lowest address visited. I have not been able to get good profiling data from the VM so I am not sure how much this helps. This code may need some refining once we get our hands on applications with larger heaps. Change-Id: I30bc6bb14bc268fe404bc1629e44247f1ef8a6f2
Loading
Please sign in to comment