A garbage collector for C++

Discussion in 'C Programming' started by lelandguo@yahoo.com.cn, Apr 22, 2006.

  1. Guest

    Hello everyone.

    I have written a garbage collector for standard C++ application. It has

    following main features.

    1) Deterministic Finalization
    Providing deterministic finalization, the system can manage resources
    as well as objects. The programming style is clear and easy, conforming

    to RAII (Resource Acquisition Is Initialization) idiom of C++
    programmers. The memory usage is very efficient, acyclic garbage is
    reclaimed when the last reference to it is removed. A well-designed
    application, which eliminates cyclic data structure, does not need
    expensive garbage collection and is always running with minimum memory

    2) Accurate GC for C++
    It is a fully accurate tracing garbage collector. All garbage objects
    are identified by the system, no conservative stack frame guessing.
    Fully C++ optimization compiler support.

    3) No Pause (less than 1us)
    In this system, all application codes automatically become fully
    interruptible and GC-Safe. Therefore, scavenge can start at any place
    without rendezvous requirement. A special concurrent tracing garbage
    collector successfully evades root-set scanning, and does not cause
    suspension of any thread at all. In the worst racing case, the latency
    is less than one microsecond (not millisecond). It is very satisfied
    for real-time systems.

    4) Small Overhead
    The runtime cost of application threads is far less than a normal
    reference counting. If there is no concurrently running scavenging
    action, there is no write-barrier overhead, no strong memory ordering
    requirement, no synchronization overhead. There is no extra code or
    data structure injected for GC safe point. The whole system does not
    require strong memory ordering, it is suitable for most modern
    processor architecture. Multi-processor concurrency can be further
    exploited by the multi-threading property of mutator and collector.

    5) Compatible Object Model
    As well as conventional C++, the system supports multiple-inheritance,
    object as member variables, and object arrays. Support C++ raw pointer,

    unions, bit-fields and hidden pointers. Support C++ templates. Support
    native object and tracing.

    6) Widely Portable
    Even conducting an accurate tracing, the system does not require any
    special information from compiler. Application can use any standard C++

    compiler, such as Visual C++ 8 and GCC. There is no special platform
    requirement, such as Win32 system call: SuspendThread, GetWriteWatch,
    etc. Even virtual memory support is not necessary. Thus, it can be
    ported to a wider area.

    Does anyone have any interest in this system? Any comments are welcome!

    Mingnan G.
    , Apr 22, 2006
    1. Advertisements

  2. Lew Pitcher

    Lew Pitcher Guest

    Hash: SHA1

    > Hello everyone.
    > I have written a garbage collector for standard C++ application.

    That's nice.

    You might want to tell the people in comp.lang.c++

    Mostly, we don't care about C++ here. This being the comp.lang.C newsgroup, we
    discuss programs written to the C standard, and have nothing to do with C++ at


    - --
    Lew Pitcher

    Master Codewright & JOAT-in-training | GPG public key available on request
    Registered Linux User #112576 (http://counter.li.org/)
    Slackware - Because I know what I'm doing.
    Version: GnuPG v1.4.2.2 (GNU/Linux)

    -----END PGP SIGNATURE-----
    Lew Pitcher, Apr 22, 2006
    1. Advertisements

  3. CBFalconer

    CBFalconer Guest

    "" wrote:
    > I have written a garbage collector for standard C++ application.
    > It has following main features.

    That's nice, if anybody is interested in C++. However a close
    examination of the name of this newsgroup will reveal
    "comp.lang.c", with nary a sign of ++.

    "If you want to post a followup via groups.google.com, don't use
    the broken "Reply" link at the bottom of the article. Click on
    "show options" at the top of the article, then click on the
    "Reply" at the bottom of the article headers." - Keith Thompson
    More details at: <http://cfaj.freeshell.org/google/>
    Also see <http://www.safalra.com/special/googlegroupsreply/>
    CBFalconer, Apr 22, 2006
    1. Advertisements

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Rob Tillie

    Garbage Collector Debugging

    Rob Tillie, Aug 15, 2003, in forum: ASP .Net
    Aug 18, 2003
  2. Pyramis
    Jan 25, 2004
  3. Colt

    Garbage collector problem

    Colt, Nov 15, 2003, in forum: Java
    Tim Ward
    Nov 18, 2003
  4. bart59
    Jun 17, 2004
  5. Will Hartung

    Garbage Collector Tuning?

    Will Hartung, Sep 8, 2004, in forum: Java
    Kevin McMurtrie
    Sep 11, 2004

Share This Page