HnxGC is an innovative (patent-pending) garbage collector for automatic management of computer memory. With our HnxGC library, you can develop your C++ application with benefits from garbage collection, no longer worry about when and where to release unused objects and resources. HnxGC library will detect and reclaim them for you. Herein we list some main features of the HnxGC library.
Accurate - HnxGC is an accurate (precise) garbage collector. All unreachable garbage will be collected with associated system resources of them being released.
Pauseless - HnxGC comes with a lock-free(non-blocking) and full concurrent tracing collector with no need to scan root-set area. Never need to take a snapshot of application status, the execution of application thread will never be interrupted, suspended, blocked or forced to spin-waiting by HnxGC, no matter in a multi-processors or an uni-processor environment.
Deterministic - HnxGC always executes the destructor of an object when application program drops the last reference to the object. In addition, application program can declare dependence requirement for each object to control the destructing ordering of cyclic garbage. The system will figure out an ordering that satisfies all user-declared requirement. Thus, application programmers have more controls on how unreachable objects are destructed, more compliance to RAII (Resource Acquisition Is Initialization) design pattern, such as closing file handle or network connection in the destructor of an object.
Efficient - Not only does HnxGC provide deterministic feature similiar to regular RC(reference counting) algorithm, but also HnxGC removes the cost of RC maintenance significantly. The most-frequently-used reference operations, such as passing a pointer as parameters or as a return value between function calls, are removed. More advanced techniques, such as GlobalMemoryFence, are used to eliminate extra memory ordering cost for a multi-processors platforms.
Easy-to-Use and Portable - Just linking with our library, you can enjoy all of above features and the more. You can even use our library with .NET managed code in visual C++. HnxGC has less restrictions, you can use template, union, bit-fields, multiple-inheritance, object composition, and array of objects in HnxGC as traditional C++. Your application only needs a standard C++ compiler, such as Visual C++ or GNU C++. No requirement of any special features from any specific compiler, nor any platform specific system calls. HnxGC can even work without virtual memory support. Write your HnxGC C++ application once, and easily port to a wider array of platforms without constraint to any specific platform vendors.
Click here for more features of HnxGC