Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is Dalvik's memory model the same as Java's?

Is Dalvik's memory model the same as Java's? I am particularly interested in whether reads and writes of reference and non-long/non-double primitive variables are atomic, but I would also like to know whether there are any differences between the two platforms' memory models.

like image 346
Daniel Trebbien Avatar asked Jan 03 '11 20:01

Daniel Trebbien


1 Answers

As of 4.0 (Ice Cream Sandwich), Dalvik's behavior should match up with JSR-133 (the Java Memory Model).

As of 3.0 (Honeycomb), most of the pieces were in place, but some minor things had been overlooked that would be difficult to encounter in practice (e.g. some edge cases in finalization).

As of 2.3 (Gingerbread), Dalvik was generally correct on uniprocessors, but some key features required for proper behavior on SMP hardware (e.g. proper final field handling) was missing.

Pre-Gingerbread, there were no memory barriers at all, and basic stuff like volatile long was broken.

like image 161
fadden Avatar answered Sep 19 '22 16:09

fadden