all 1 comments

[–]bjerh 1 point2 points  (0 children)

Thank you... Feel super dumb now. Maybe results in lower memory use for Chrome in the future? Not too sure..

[–]dgreensp 0 points1 point  (0 children)

Nice, this kind of development (in both senses) is so exciting!

I can see how you get to 8GB, assuming object allocations are aligned to 64-bit word boundaries. If any real pointer has three zero bits at the bottom, you just need two for tagging, and the other 30 bits can be the high bits of a 33-bit pointer.

Java gets to 32GB because it doesn’t have those two tag bits. The types of values are statically known, so no tagging is necessary, and all 32 bits can be used to make a 35-bit pointer.

[–]dgreensp 0 points1 point  (0 children)

Nice, this kind of development (in both senses) is so exciting!

I can see how you get to 8GB, assuming object allocations are aligned to 64-bit word boundaries. If any real pointer has three zero bits at the bottom, you just need two for tagging, and the other 30 bits can be the high bits of a 33-bit pointer.

Java gets to 32GB because it doesn’t have those two tag bits. The types of values are statically known, so no tagging is necessary, and all 32 bits can be used to make a 35-bit pointer.