An accurate, pauseless & deterministic GC for C++

D

Dmitriy V'jukov

The HnxGC Libraray - an accurate, pauseless & deterministic garbage
collector for C++ application, is released at
http://hnxgc.harnixworld.com
Features include: [...]
Efficient - Even HnxGC provide deterministic reclamation feature
similiar to the one in regular reference counting algorithm, we remove
the cost of reference maintenance significantly. The cost of most-
frequently-used reference copying, such as passing references as
parameters or return values between function calls, are removed. More
advanced technique, such as GlobalMemoryFence, are used to eliminate
the memory ordering cost for a multi-processors platforms.

Overhead of 'passing references as parameters or return values between
function calls' is not related to multi-threaded reference counting.
It's forgery. One can easily eliminate those overheads. Just pass
smart pointers by constant reference, not by value:

void f(smart_ptr<t> const& obj) {...}
instead of:
void f(smart_ptr<t> obj) {...}

With smart pointers like boost::intrusive_ptr one can pass just plain
pointer:

void f(t* obj) {...}

And apply 'move semantics' (Andrei Alexandrescu's mojo, or c++0x
rvalue references '&&'). So as following just *transfers* ownership:

smart_ptr<t> obj = f();

The main question: how one can eliminate overheads of reference
counting in *other* situations, where reference counting is *really*
needed?
As I understand, HnxGC doesn't answer this question...

Dmitriy V'jukov
 
C

Chris Thomasson

Dmitriy V'jukov said:
(e-mail address removed)...
The HnxGC Libraray - an accurate, pauseless & deterministic garbage
collector for C++ application, is released at
http://hnxgc.harnixworld.com
Features include: [...]
Efficient - Even HnxGC provide deterministic reclamation feature
similiar to the one in regular reference counting algorithm, we remove
the cost of reference maintenance significantly. The cost of most-
frequently-used reference copying, such as passing references as
parameters or return values between function calls, are removed. More
advanced technique, such as GlobalMemoryFence, are used to eliminate
the memory ordering cost for a multi-processors platforms.
Overhead of 'passing references as parameters or return values between
function calls' is not related to multi-threaded reference counting.

First of all, your right.

It's forgery.

Forgery in the sense of copying prior-art?
 
D

Dmitriy V'jukov

(e-mail address removed)...
The HnxGC Libraray - an accurate, pauseless & deterministic garbage
collector for C++ application, is released at
http://hnxgc.harnixworld.com
Features include: [...]
Efficient - Even HnxGC provide deterministic reclamation feature
similiar to the one in regular reference counting algorithm, we remove
the cost of reference maintenance significantly. The cost of most-
frequently-used reference copying, such as passing references as
parameters or return values between function calls, are removed. More
advanced technique, such as GlobalMemoryFence, are used to eliminate
the memory ordering cost for a multi-processors platforms.
Overhead of 'passing references as parameters or return values between
function calls' is not related to multi-threaded reference counting.

First of all, your right.
It's forgery.

Forgery in the sense of copying prior-art?

No :)
In the forgery in the sense that one really doesn't need any activity
related to life-time management when passing object as parameter to
function (because object will be guaranteed alive until function end),
and when returning object from function (because it's just ownership
transfer).

And one of the main claims of HnxGC wrt performance:
"... we remove the cost of reference maintenance significantly. The
cost of most-frequently-used reference copying, such as passing
references as parameters or return values between function calls, are
removed"

There was no any overheads related to those operations! Never! So what
is improved?!

Dmitriy V'jukov
 
J

Jeff Schwab

Dmitriy said:
(e-mail address removed)...
The HnxGC Libraray - an accurate, pauseless & deterministic garbage
collector for C++ application, is released at
http://hnxgc.harnixworld.com
Features include:
[...]
Efficient - Even HnxGC provide deterministic reclamation feature
similiar to the one in regular reference counting algorithm, we remove
the cost of reference maintenance significantly. The cost of most-
frequently-used reference copying, such as passing references as
parameters or return values between function calls, are removed. More
advanced technique, such as GlobalMemoryFence, are used to eliminate
the memory ordering cost for a multi-processors platforms.
Overhead of 'passing references as parameters or return values between
function calls' is not related to multi-threaded reference counting.
First of all, your right.
It's forgery.
Forgery in the sense of copying prior-art?

No :)

I think you mean "It's a fallacy."
 
D

Dmitriy V'jukov

Dmitriy said:
(e-mail address removed)...
The HnxGC Libraray - an accurate, pauseless & deterministic garbage
collector for C++ application, is released at
http://hnxgc.harnixworld.com
Features include:
[...]
Efficient - Even HnxGC provide deterministic reclamation feature
similiar to the one in regular reference counting algorithm, we remove
the cost of reference maintenance significantly. The cost of most-
frequently-used reference copying, such as passing references as
parameters or return values between function calls, are removed. More
advanced technique, such as GlobalMemoryFence, are used to eliminate
the memory ordering cost for a multi-processors platforms.
Overhead of 'passing references as parameters or return values between
function calls' is not related to multi-threaded reference counting.
First of all, your right.
It's forgery.
Forgery in the sense of copying prior-art?

I think you mean "It's a fallacy."

Hmmm. It's seems you are right. Sorry for any confusion.
English is far more difficult than advanced lock-free algorithms :)

Dmitriy V'jukov
 
J

Jeff Schwab

Dmitriy said:
Dmitriy said:
(e-mail address removed)...
The HnxGC Libraray - an accurate, pauseless & deterministic garbage
collector for C++ application, is released at
http://hnxgc.harnixworld.com
Features include:
[...]
Efficient - Even HnxGC provide deterministic reclamation feature
similiar to the one in regular reference counting algorithm, we remove
the cost of reference maintenance significantly. The cost of most-
frequently-used reference copying, such as passing references as
parameters or return values between function calls, are removed. More
advanced technique, such as GlobalMemoryFence, are used to eliminate
the memory ordering cost for a multi-processors platforms.
Overhead of 'passing references as parameters or return values between
function calls' is not related to multi-threaded reference counting.
First of all, your right.
It's forgery.
Forgery in the sense of copying prior-art?
No :)
I think you mean "It's a fallacy."

Hmmm. It's seems you are right. Sorry for any confusion.
English is far more difficult than advanced lock-free algorithms :)

I agree! I am a native speaker, and still have a hard time getting it
right. Like C++ with threads, English is... complicated.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top