27 November 2010

HPPC: High Performance Primitive Collections for Java

HPPC: High Performance Primitive Collections for Java
HPPC provides template-generated implementations of typical collections, such as lists, sets and maps, for all Java primitive types. The primary driving force behind HPPC is optimization for highest performance and memory efficiency.

There are a few projects implementing collections over primitive types, including fastutil, PCJ, GNU Trove, Apache Mahout (ported COLT collections), Apache Primitive Collections. Some of them are released under the LGPL license, which many commercial companies tend to avoid at all costs; other are no longer maintained or complete. Most of the projects tend to write tightly encapsulated code with no access to private internals, implement the API of standard Java packages and strive for fast error-recovery. While these are all good programming practices, they are not always practical. In many computationally-intensive applications, access to the collection class' internals is crucial for writing highest-performance application code.