www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - GC (Virtually Zero-Overhead Object Management)

reply zz <zz zz.com> writes:
While having a discussion about GC's with a friend, he brought up this 
link which I found quite interesting (at the first reading) and I 
thought others would also find it interesting.

I'm still very skeptical of the claims.

http://home.comcast.net/~vzoom/

and some code which I still have to run.

http://home.comcast.net/~vzoom/demos/pc_sample.c

Zz
Nov 28 2006
parent reply Sean Kelly <sean f4.ca> writes:
zz wrote:
 While having a discussion about GC's with a friend, he brought up this 
 link which I found quite interesting (at the first reading) and I 
 thought others would also find it interesting.
 
 I'm still very skeptical of the claims.

Don't be. Chris Thomasson may talk a bit big at times, but he has a solid grasp of the problems involved and VZOOM has gotten a lot of attention lately from some pretty respectable sources (I think it just won some kind of award in a contest sponsored by Sun or some such). I haven't given VZOOM a very close look myself, but what I've heard Chris say about it makes me believe that it probably lives up to his claims. What makes VZOOM so fast, from what I've heard, is that it almost completely avoids the use of memory synchronization instructions through the use of some clever tricks, along the lines of RCU + SMR. Last I heard Chris was working on a lock-free GC which sounded fairly promising, though it was smart-pointer based and therefore not really suitable for D. Sean
Nov 28 2006
parent reply "Craig Black" <cblack ara.com> writes:
"Sean Kelly" <sean f4.ca> wrote in message 
news:ekiu16$1ndk$1 digitaldaemon.com...
 zz wrote:
 While having a discussion about GC's with a friend, he brought up this 
 link which I found quite interesting (at the first reading) and I thought 
 others would also find it interesting.

 I'm still very skeptical of the claims.

Don't be. Chris Thomasson may talk a bit big at times, but he has a solid grasp of the problems involved and VZOOM has gotten a lot of attention lately from some pretty respectable sources (I think it just won some kind of award in a contest sponsored by Sun or some such). I haven't given VZOOM a very close look myself, but what I've heard Chris say about it makes me believe that it probably lives up to his claims. What makes VZOOM so fast, from what I've heard, is that it almost completely avoids the use of memory synchronization instructions through the use of some clever tricks, along the lines of RCU + SMR. Last I heard Chris was working on a lock-free GC which sounded fairly promising, though it was smart-pointer based and therefore not really suitable for D.

Why not? If someone has discovered a good GC solution via smart pointers and reference counting, why couldn't D leverage this new technology somehow? I'm not talking about dumping our current GC for another, but rather providing options. This could probably be done using a mixin that provides an overloaded new and delete. (Correct me if I'm wrong.) I believe that one huge criticism of reference counting was that it was slow for multi-threading. Well, if there is a lock-free algorithm becomes available, then that argument can no longer be used. -Craig
Nov 29 2006
parent reply Sean Kelly <sean f4.ca> writes:
Craig Black wrote:
 "Sean Kelly" <sean f4.ca> wrote in message 
 news:ekiu16$1ndk$1 digitaldaemon.com...
 zz wrote:
 While having a discussion about GC's with a friend, he brought up this 
 link which I found quite interesting (at the first reading) and I thought 
 others would also find it interesting.

 I'm still very skeptical of the claims.

grasp of the problems involved and VZOOM has gotten a lot of attention lately from some pretty respectable sources (I think it just won some kind of award in a contest sponsored by Sun or some such). I haven't given VZOOM a very close look myself, but what I've heard Chris say about it makes me believe that it probably lives up to his claims. What makes VZOOM so fast, from what I've heard, is that it almost completely avoids the use of memory synchronization instructions through the use of some clever tricks, along the lines of RCU + SMR. Last I heard Chris was working on a lock-free GC which sounded fairly promising, though it was smart-pointer based and therefore not really suitable for D.

Why not? If someone has discovered a good GC solution via smart pointers and reference counting, why couldn't D leverage this new technology somehow?

I suppose it depends how the smart pointers are implemented. As D doesn't support copy semantics for objects, there is really no way to implement traditional smart pointers. Rather, the reference counting has to be done somewhat manually. Sean
Nov 29 2006
parent reply "Craig Black" <cblack ara.com> writes:
"Sean Kelly" <sean f4.ca> wrote in message 
news:ekkja0$i6p$1 digitaldaemon.com...
 Craig Black wrote:
 "Sean Kelly" <sean f4.ca> wrote in message 
 news:ekiu16$1ndk$1 digitaldaemon.com...
 zz wrote:
 While having a discussion about GC's with a friend, he brought up this 
 link which I found quite interesting (at the first reading) and I 
 thought others would also find it interesting.

 I'm still very skeptical of the claims.

solid grasp of the problems involved and VZOOM has gotten a lot of attention lately from some pretty respectable sources (I think it just won some kind of award in a contest sponsored by Sun or some such). I haven't given VZOOM a very close look myself, but what I've heard Chris say about it makes me believe that it probably lives up to his claims. What makes VZOOM so fast, from what I've heard, is that it almost completely avoids the use of memory synchronization instructions through the use of some clever tricks, along the lines of RCU + SMR. Last I heard Chris was working on a lock-free GC which sounded fairly promising, though it was smart-pointer based and therefore not really suitable for D.

Why not? If someone has discovered a good GC solution via smart pointers and reference counting, why couldn't D leverage this new technology somehow?

I suppose it depends how the smart pointers are implemented. As D doesn't support copy semantics for objects, there is really no way to implement traditional smart pointers. Rather, the reference counting has to be done somewhat manually.

Right. I forgot about that. Specifically, what language features would have to be in place to provide for this? -Craig
Nov 29 2006
parent reply Sean Kelly <sean f4.ca> writes:
Craig Black wrote:
 "Sean Kelly" <sean f4.ca> wrote in message 
 news:ekkja0$i6p$1 digitaldaemon.com...
 Craig Black wrote:
 "Sean Kelly" <sean f4.ca> wrote in message 
 news:ekiu16$1ndk$1 digitaldaemon.com...
 zz wrote:
 While having a discussion about GC's with a friend, he brought up this 
 link which I found quite interesting (at the first reading) and I 
 thought others would also find it interesting.

 I'm still very skeptical of the claims.

solid grasp of the problems involved and VZOOM has gotten a lot of attention lately from some pretty respectable sources (I think it just won some kind of award in a contest sponsored by Sun or some such). I haven't given VZOOM a very close look myself, but what I've heard Chris say about it makes me believe that it probably lives up to his claims. What makes VZOOM so fast, from what I've heard, is that it almost completely avoids the use of memory synchronization instructions through the use of some clever tricks, along the lines of RCU + SMR. Last I heard Chris was working on a lock-free GC which sounded fairly promising, though it was smart-pointer based and therefore not really suitable for D.

and reference counting, why couldn't D leverage this new technology somehow?

support copy semantics for objects, there is really no way to implement traditional smart pointers. Rather, the reference counting has to be done somewhat manually.

Right. I forgot about that. Specifically, what language features would have to be in place to provide for this?

I'm not sure, without looking at the code. But for general smart pointers we'd need C++ style initialization and copy semantics for value objects (ie. structs), and an overloaded dot operator would be a "nice to have." The thing is that I actually like that these features are not in D. Sean
Nov 29 2006
parent "Craig Black" <cblack ara.com> writes:
"Sean Kelly" <sean f4.ca> wrote in message 
news:ekkn5d$o3u$1 digitaldaemon.com...
 Craig Black wrote:
 "Sean Kelly" <sean f4.ca> wrote in message 
 news:ekkja0$i6p$1 digitaldaemon.com...
 Craig Black wrote:
 "Sean Kelly" <sean f4.ca> wrote in message 
 news:ekiu16$1ndk$1 digitaldaemon.com...
 zz wrote:
 While having a discussion about GC's with a friend, he brought up 
 this link which I found quite interesting (at the first reading) and 
 I thought others would also find it interesting.

 I'm still very skeptical of the claims.

solid grasp of the problems involved and VZOOM has gotten a lot of attention lately from some pretty respectable sources (I think it just won some kind of award in a contest sponsored by Sun or some such). I haven't given VZOOM a very close look myself, but what I've heard Chris say about it makes me believe that it probably lives up to his claims. What makes VZOOM so fast, from what I've heard, is that it almost completely avoids the use of memory synchronization instructions through the use of some clever tricks, along the lines of RCU + SMR. Last I heard Chris was working on a lock-free GC which sounded fairly promising, though it was smart-pointer based and therefore not really suitable for D.

pointers and reference counting, why couldn't D leverage this new technology somehow?

doesn't support copy semantics for objects, there is really no way to implement traditional smart pointers. Rather, the reference counting has to be done somewhat manually.

Right. I forgot about that. Specifically, what language features would have to be in place to provide for this?

I'm not sure, without looking at the code. But for general smart pointers we'd need C++ style initialization and copy semantics for value objects (ie. structs), and an overloaded dot operator would be a "nice to have." The thing is that I actually like that these features are not in D.

Perhaps someone could invent a cleaner solution that doesn't muck up the syntax with problematic C++ language features. D has a habit of doing this. -Craig
Nov 29 2006