| Thread overview | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
July 16, 2015 really good talk about the Hotspot VM | ||||
|---|---|---|---|---|
| ||||
This talk is really good and contains a lot of usefull information very densly packed: https://www.youtube.com/watch?v=vzzABBxo44g The speaker has 30 years of experience working on javas hotspot vm and shares his opinions on what you should do. My takeaways from this talk are: GC: -You want a fully percise GC (e.g. know _all_ pointers even the ones on the stack), the benenift outweights the cost for tracking pointers. -You do not want to pin allocations in the gc heap as it is to restrictive for your gc implementation. -GC safepoints worked out really well. TLS: To get fast thread local storage, align the start of the stack so you can chop of a few bits of the stack pointer to get to the TLS-section. We might be able to use this on platforms with slow TLS? Kind Regards Benjamin Thaut | ||||
July 16, 2015 Re: really good talk about the Hotspot VM | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Benjamin Thaut | On Thu, 16 Jul 2015 17:30:05 +0000, Benjamin Thaut wrote:
> The speaker has 30 years of experience working on javas hotspot vm
How is this possible? Time travel?
| |||
July 16, 2015 Re: really good talk about the Hotspot VM | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Benjamin Thaut | On Thursday, 16 July 2015 at 17:30:06 UTC, Benjamin Thaut wrote:
> This talk is really good and contains a lot of usefull information very densly packed:
> https://www.youtube.com/watch?v=vzzABBxo44g
>
> [...]
Treating D's GC the same as a managed language running in a VM's GC will only end in disappointment.
| |||
July 16, 2015 Re: really good talk about the Hotspot VM | ||||
|---|---|---|---|---|
| ||||
Posted in reply to rsw0x | On Thursday, 16 July 2015 at 17:52:33 UTC, rsw0x wrote:
> On Thursday, 16 July 2015 at 17:30:06 UTC, Benjamin Thaut wrote:
>> This talk is really good and contains a lot of usefull information very densly packed:
>> https://www.youtube.com/watch?v=vzzABBxo44g
>>
>> [...]
>
> Treating D's GC the same as a managed language running in a VM's GC will only end in disappointment.
Why? The only real difference is that a java vm generates the machine code during runtime while the D compiler generates the machine code ahead of time. The underlying implementation of the important GC parts (e.g. pointer discovery, safe points, etc) are still the same. And if you look for a state of the art GC, they only exist for VMs. I don't know any other compiled language with a GC you could compare against.
| |||
July 16, 2015 Re: really good talk about the Hotspot VM | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Justin Whear | On Thursday, 16 July 2015 at 17:37:44 UTC, Justin Whear wrote:
> On Thu, 16 Jul 2015 17:30:05 +0000, Benjamin Thaut wrote:
>
>> The speaker has 30 years of experience working on javas hotspot vm
>
> How is this possible? Time travel?
I confused that one. He actually states that he has 35 years of experience building compilers and 20 years on the Hotspot VM, which still is a huge amount of experience.
| |||
July 16, 2015 Re: really good talk about the Hotspot VM | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Benjamin Thaut | On Thursday, 16 July 2015 at 21:04:33 UTC, Benjamin Thaut wrote: > On Thursday, 16 July 2015 at 17:52:33 UTC, rsw0x wrote: >> On Thursday, 16 July 2015 at 17:30:06 UTC, Benjamin Thaut wrote: >>> This talk is really good and contains a lot of usefull information very densly packed: >>> https://www.youtube.com/watch?v=vzzABBxo44g >>> >>> [...] >> >> Treating D's GC the same as a managed language running in a VM's GC will only end in disappointment. > > Why? The only real difference is that a java vm generates the machine code during runtime while the D compiler generates the machine code ahead of time. The underlying implementation of the important GC parts (e.g. pointer discovery, safe points, etc) are still the same. And if you look for a state of the art GC, they only exist for VMs. Not even that, as there are AOT compilers for Java, so VM == language runtime. With the ongoing work on Graal and Substrate, even Oracle might be supporting AOT on the reference implementation. For me the best part was he saying nowadays he would just bootstrap Java, not use C or C++. > I don't know any other compiled language with a GC you could compare against. .NET? Given that they offer NGEN, MDIL and now .NET Native, besides JIT. 4.6 is also bringing new GC improvements. -- Paulo | |||
July 16, 2015 Re: really good talk about the Hotspot VM | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Benjamin Thaut | On Thursday, 16 July 2015 at 21:04:33 UTC, Benjamin Thaut wrote:
> On Thursday, 16 July 2015 at 17:52:33 UTC, rsw0x wrote:
>> On Thursday, 16 July 2015 at 17:30:06 UTC, Benjamin Thaut wrote:
>>> This talk is really good and contains a lot of usefull information very densly packed:
>>> https://www.youtube.com/watch?v=vzzABBxo44g
>>>
>>> [...]
>>
>> Treating D's GC the same as a managed language running in a VM's GC will only end in disappointment.
>
> Why? The only real difference is that a java vm generates the machine code during runtime while the D compiler generates the machine code ahead of time. The underlying implementation of the important GC parts (e.g. pointer discovery, safe points, etc) are still the same. And if you look for a state of the art GC, they only exist for VMs. I don't know any other compiled language with a GC you could compare against.
If you have a way to implement self-healing code in D please share it. Or forwarding pointers, or card marking, or read/write barriers without abusing the MMU(which is dog slow,) or...
Any of these would require massive changes to D that will never happen. But while everyone is tripping over themselves to try and copy something that will *not* work in D, they refuse to acknowledge what massive benefits D's GC can provide over Java's.
| |||
July 16, 2015 Re: really good talk about the Hotspot VM | ||||
|---|---|---|---|---|
| ||||
Posted in reply to rsw0x | On Thursday, 16 July 2015 at 22:23:41 UTC, rsw0x wrote:
> On Thursday, 16 July 2015 at 21:04:33 UTC, Benjamin Thaut wrote:
>> On Thursday, 16 July 2015 at 17:52:33 UTC, rsw0x wrote:
>>> [...]
>>
>> Why? The only real difference is that a java vm generates the machine code during runtime while the D compiler generates the machine code ahead of time. The underlying implementation of the important GC parts (e.g. pointer discovery, safe points, etc) are still the same. And if you look for a state of the art GC, they only exist for VMs. I don't know any other compiled language with a GC you could compare against.
>
> If you have a way to implement self-healing code in D please share it. Or forwarding pointers, or card marking, or read/write barriers without abusing the MMU(which is dog slow,) or...
>
> Any of these would require massive changes to D that will never happen. But while everyone is tripping over themselves to try and copy something that will *not* work in D, they refuse to acknowledge what massive benefits D's GC can provide over Java's.
And yes, I'm well aware that someone will get pedantic and preach to me about using page protection to implement these things(despite mentioning it,) but it is _slow_, and you will be SOL in a few years when nobody uses 4K pages anymore.
| |||
July 16, 2015 Re: really good talk about the Hotspot VM | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Benjamin Thaut Attachments: | On Thu, 16 Jul 2015 21:04:32 +0000, Benjamin Thaut wrote:
> On Thursday, 16 July 2015 at 17:52:33 UTC, rsw0x wrote:
>> On Thursday, 16 July 2015 at 17:30:06 UTC, Benjamin Thaut wrote:
>>> This talk is really good and contains a lot of usefull information very densly packed: https://www.youtube.com/watch?v=vzzABBxo44g
>>>
>>> [...]
>>
>> Treating D's GC the same as a managed language running in a VM's GC will only end in disappointment.
>
> Why?
two words: "memory barriers".
| |||
July 17, 2015 Re: really good talk about the Hotspot VM | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Justin Whear | On Thursday, 16 July 2015 at 17:37:44 UTC, Justin Whear wrote:
> On Thu, 16 Jul 2015 17:30:05 +0000, Benjamin Thaut wrote:
>
>> The speaker has 30 years of experience working on javas hotspot vm
>
> How is this possible? Time travel?
was wondering the same :D
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply