Live data from Hacker News

Java’s new garbage collector promises low pause times on multi-terabyte heaps

opsian.com

131–140 of 245 posts

Re: Java’s new garbage collector promises low pause times on multi-terabyte heaps

#131

I'm glad they didn't buy into the refcount meme that's so inexplicably popular these days.

For people who want to fight about tracing vs ref-counting, please read this first, on how the two are dual and most collectors use both:

http://www.cs.virginia.edu/%7Ecs415/reading/bacon-garbage.pd...

Re: Java’s new garbage collector promises low pause times on multi-terabyte heaps

#133

> Limited to 4tb heaps I can't believe the world we're living in, this is incredible. My first computer 512k of ram.

Java is at least somewhat responsible for the need to get to 4TB in the first place.

Re: Java’s new garbage collector promises low pause times on multi-terabyte heaps

#134

Earlier quoted context omitted.

> Our legal system is such that Oracle can still burn you down, even if you are right. Do you happen to know of any real-world case that's similar to the scenario you've described?

Google v Oracle comes to mind.

Didn't Google end up importing OpenJDK code?

Re: Java’s new garbage collector promises low pause times on multi-terabyte heaps

#135
post #99
post #79

Earlier quoted context omitted.

It's just an object that lives on the stack, not the heap. In lots of languages when you create an object, it's pretty explicit where you're putting it. When Java was created, they wanted to get rid of that complexity, so primitives always go on the stack and objects always* go on the heap. * I think Java has escape analysis, which means that if it can determine that an object you created doesn't leave its context, i…

Moreover, they can be used in composite objects without pointer chasing. Suppose class A is a 32-byte value type. Then class B { A a1; A a2; } is one continuous 64-byte block of memory. Without value types, each A will be allocated separately on the heap, and B will be a pair of pointers. Lack of value types makes it hard to get cache efficient memory layouts in Java.

Of course if/when a1 gets also referenced from outside while you may not need B any more that is then the things become more interesting.

Re: Java’s new garbage collector promises low pause times on multi-terabyte heaps

#136
post #122

Earlier quoted context omitted.

You can also make a 3d game of large scale, and just let it have hiccups occasionally and still make a billion dollars. Of course those of us hosting servers for that particular game would have saved a ton of money and pain if they had not used Java, or used Java more cleverly.

The point is that they should have used Java more cleverly. One can make a game in C++ and make it just as bad.

The lack of value types makes the code quite unwieldy to control memory layout vs C++, or C#, or Go, or Rust or anything

Re: Java’s new garbage collector promises low pause times on multi-terabyte heaps

#137

Earlier quoted context omitted.

I did a search for "freecodyx user", and found no results, so I guess you don't exist.

In order for a meme to exist, it needs to be popular. A person doesn't need to be popular to exist. It's like you're claiming you are famous because your mom knows who you are.

My point was that your search criteria (including the keyword “meme”) is only applicable for what we might call “internet culture memes”, which is clearly not what was meant by the post you’re replying to. Your results were irrelevant.

Re: Java’s new garbage collector promises low pause times on multi-terabyte heaps

#138
post #79

Earlier quoted context omitted.

It's just an object that lives on the stack, not the heap. In lots of languages when you create an object, it's pretty explicit where you're putting it. When Java was created, they wanted to get rid of that complexity, so primitives always go on the stack and objects always* go on the heap. * I think Java has escape analysis, which means that if it can determine that an object you created doesn't leave its context, i…

It's more about the memory layout than where the objects live. For example, consider a Point class with (x, y) members. If you have an array of these, each element in the array will be a reference/pointer to a separately allocated Point instance which can be anywhere in the heap. Accessing the array is expensive due to lack of locality (arbitrary memory access). Additionally, each instance has substantial object over…

Value types also give you more control over cache locality. Not having to travel that extra pointer redirection can really add up depending on what you're doing.

Re: Java’s new garbage collector promises low pause times on multi-terabyte heaps

#139
post #80

Earlier quoted context omitted.

I think a lack of value types also hurts Java significantly here. Though I believe they're also on the roadmap.

With generational GC, does this even matter? Generation 0 is pretty much a stack as far as performance and operation go.

Problem is memory locality, or lack thereof. Having to chase pointers around and not having things laid out in sequence doesn't play well with the CPU cache.

Re: Java’s new garbage collector promises low pause times on multi-terabyte heaps

#140

> Limited to 4tb heaps I can't believe the world we're living in, this is incredible. My first computer 512k of ram.

Java is at least somewhat responsible for the need to get to 4TB in the first place.

Sounds interesting. Could you explain how so?
Post reply on HN