Maybe I'm naive, but with multi-core CPUs, and parallel GCs, isn't it somehow the same? One core is mostly only used for GC, while the others do other things? Edit: I guess they mention their chip itself can do it at a high level of parallelism, so that's probably one more advantage. But CPUs with additional slower cores and a lot more cores are in the works as well.
For Better Computing, Liberate CPUs from Garbage Collection
51–60 of 460 posts
Re: For Better Computing, Liberate CPUs from Garbage Collection
#52Azul Systems has asked Intel to do this once... but instead created their own processors with interesting memory barrier properties for awhile that greatly sped up JVMs beyond what was capable (at the time) on x86-32/ppc/sparc. Eventually they gave up and became a purely software company, but their "Java Mainframe" product was many times faster than the Intels of the age executing the same code despite much slower CP…
Re: For Better Computing, Liberate CPUs from Garbage Collection
#53So my idea for GC is to offload it to a separate machine through a communications channel. The main CPU sends messages to the co-processor whenever it allocates memory, or whenever it mutates (whenever it writes a pointer to allocated memory or to the root set- there could be special versions of the move instructions which send these messages as a side-effect). There is a hardware queue for these messages and the mai…
Re: For Better Computing, Liberate CPUs from Garbage Collection
#54> globally this represents a large amount of computing resources. Much of which would just sit idle otherwise, on client machines. Of course, the energy savings still apply. > He also points out that many garbage collection mechanisms can result in unpredictable pauses, where the computer system stops for a brief moment to clean up its memory. This is more of a hard barrier that's being solved. All in all pretty cool…
Especially when you ask the question "is it better to spend the area/power budget on a highly-specialized accelerator, or to give it over to another full core that can do other things when it's not collecting garbage," it's hard to motivate this kind of accelerator.
Re: For Better Computing, Liberate CPUs from Garbage Collection
#55Seems like we could just as easily stop using garbage collection. ... or even go back to reference counting / smart pointers and just live with the “limitation” that we can’t have circular references.
Re: For Better Computing, Liberate CPUs from Garbage Collection
#56Maybe I'm naive, but with multi-core CPUs, and parallel GCs, isn't it somehow the same? One core is mostly only used for GC, while the others do other things? Edit: I guess they mention their chip itself can do it at a high level of parallelism, so that's probably one more advantage. But CPUs with additional slower cores and a lot more cores are in the works as well.
But the GC has to do it in a thread safe way which involves locking/synchronization. Otherwise you get nasty race conditions.
Re: For Better Computing, Liberate CPUs from Garbage Collection
#57From an environmental perspective, I wonder how much energy is consumed (and emissions generated) for garbage collection and interpreters. These things exist to make programming easier but are then duplicated across thousands of servers. If everyone used some compiled language that was just a little simpler, a little safer, had just a little better memory management/tooling, or like here, had better hardware support,…
So... Rust, basically
Re: For Better Computing, Liberate CPUs from Garbage Collection
#58Earlier quoted context omitted.
Python still uses mark and sweep occasionally to clean up structures where reference counting fails.
It has optional cycle detection, yep. But... you could also just spend a couple of minutes to not have cyclic references.
Re: For Better Computing, Liberate CPUs from Garbage Collection
#59Seems like we could just as easily stop using garbage collection. ... or even go back to reference counting / smart pointers and just live with the “limitation” that we can’t have circular references.
Re: For Better Computing, Liberate CPUs from Garbage Collection
#60Seems like we could just as easily stop using garbage collection. ... or even go back to reference counting / smart pointers and just live with the “limitation” that we can’t have circular references.