Home > Features > Comparison

Features Comparison

On This Page

Compare with Standard C++ Language & Boost C++ Libraries

Advantage:
    Automatically collect circular-referenced garbage;
    Small object allocation is faster than standard C++;
    Reclaims multiple objects in one go, less synchronization cost;
    Object Pool provides fast linear allocation speed;
    Convenient API for Serialization;
    Enhanced cyclic-collectable COM;
    No stack overflow issue of nested destructions for reference counting, as boost::shared_ptr and boost::intrusive_ptr;

Disadvantage:
    Extra cost on some smart pointer operations, such as pointer assignment;
    Must upgrade C++ classes and pointers to managed version;

Compare with Microsoft .NET framework

Advantage:
    Pauseless, block-free, no suspension and interruption from garbage collector;
    Immediately reclaim objects that lost all references;
    Allow multiple-inheritance, object as member variables or elements of array;
    Faster and convenient communications with native code, no need to "pin" an object;
    All HnxGC pointers can point to the interior of an object, better than cli::interior_ptr;
    Object reclamation ordering control API;
    Provide delay-destructing, thread associated destructing API;
    Faster for medium or large objects, more than x100 times faster in some cases;
    (Object Pool provides linear allocation for small objects, the speed can reach the same degree of .NET framework);
    Introduce SubHeap concept to fast collect garbage within a group of objects;
    Enhanced cyclic-collectable COM;
    More choices of different compilers, no VM requirement on target platforms;

Disadvantage:
    Extra cost on some smart pointer operations, such as pointer assignment;

Compare with Sun Microsystems Java2 HotSpot

Advantage:
    Pauseless, block-free, no suspension and interruption from garbage collector;
    Immediately reclaim objects that lost all references;
    Allow multiple-inheritance, object as member variables or elements of array;
    All HnxGC pointers can point to the interior of an object;
    Object reclamation ordering control API;
    Provide delay-destructing, thread associated destructing API;
    Object Pool provides linear allocation for small objects, run faster;
    SubHeap concept to trace references within a group of objects;
    Directly precompiled into target machine code, run faster;
    Faster and convenient communications to/from native code;
    Enhanced cyclic-collectable COM;

Disadvantage:
    Extra cost on some smart pointer operations, such as pointer assignment;

Compare with Boehm-Demers-Weiser conservative garbage collector

Advantage:
    Pauseless, block-free, no suspension and interruption from garbage collector;
    Immediately reclaim objects that lost all references;
    Object reclamation ordering control API;
    Provide delay-destructing, thread associated destructing API;
    Faster for medium or large objects;
    Object Pool provides linear allocation for small objects, run faster;
    SubHeap concept to trace references within a group of objects;
    Convenient API for Serialization;
    Enhanced cyclic-collectable COM;
    no VM requirement on target platforms;

Disadvantage:
    Extra cost on some smart pointer operations, such as pointer assignment;
    Must upgrade C++ classes and pointers to managed version;

Table of Features Comparison

Feature List HnxGC C/C++ .NET BDW Java Boost
Collect Cyclic Garbage Yes No Yes Yes Yes No
Reference Counting Yes No No No No Yes
Multiple-Inheritance Yes Yes No No No Yes
Object As Member VariablesYes Yes No No No Yes
Object As Array ElementsYes Yes No No No Yes
Pauseless, Block-Free, No SuspensionYes Yes No No No Yes
Interior Pointer Yes Yes Yes Yes No No
Raw (Native) Access Yes Yes No Yes No Yes
Reclamation Ordering ControlYes- No No No -
Resurrection Yes - Yes Yes Yes -
Delay-Destructing Yes - - - - No
Thread Associated DestructingYesNo No No No No
Serialization Yes No Yes No Yes No
Collect Cyclic COM ObjectYes No No No No No
Support RAII ConventionYes Yes No No No -
Union, Hidden Pointer Yes Yes No No No Yes
Exception Yes Yes Yes - Yes -
Template of Managed ObjectYes Yes - Yes No Yes
Require VM on Platform No No Yes Yes - No
Need Cooperative C++ CompilerNo No Yes No - No
Linear Allocation SpeedYes No Yes No - No
Sub Heap GC Yes No No No No No
Precompiled to Machine CodeYesYes Yes Yes No Yes
Nested Destructions IssueNo - - - - Yes
Need Upgrade Source CodeYes No Yes No Yes Yes
Cost on Pointer AssignmentYes No No No - Yes

See Also:
Performance Benchmarks
Features of HnxGC
Home | Download | Terms of Use | Privacy Statement | Contact Us
Copyright@ 2008 hnxgc.harnixworld.com, All rights reserved.