Hello Xin,

1. It is possible to have reference count for every object with whatever GC you are using. But if you want to mix generational mark-sweep and reference counting to collect objects then you need to be careful about your algorithm.

2. The reference counting in Jikes RVM uses deferred [1] reference counting (with coalescing [2]) instead of immediate reference counting. In that case all the increment and decrement are processed during collection time. You can have a look at the references.

[1] D. F. Bacon, C. R. Attanasio, H. B. Lee, V. T. Rajan, and S. Smith. Java without the coffee breaks: A nonintrusive multiprocessor garbage collector. In ACM Conference on Programming Language Design and Implementation, pages 92–103, Snowbird, UT, USA, 2001. doi: 10.1145/378795.378819.
[2] Y. Levanoni and E. Petrank. An on-the-fly reference counting garbage collector for Java. In ACM Conference on Object–Oriented Programming Systems, Languages, and Applications, pages 367–380, Tampa, FL, USA, 2001. doi: 10.1145/504282.504309.

On 27/11/12 2:48 PM, Xin Tong wrote:

I am new to the Jikes RVM. I have 2 questions.

1. Is it possible to use the generational generational mark and sweep
GC while still keeping (updating it accordingly) the reference count
on every object ?
2. where are the code to increment and decrement the reference count
in the Jikes RVM. the decRC is only called by the collectionPhase
method in the RCBaseCollector.java file. should not object reference
be updated when the any reference to the object is destroyed or
altered ?


Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
Jikesrvm-researchers mailing list

Australian National University