Skip to content
This repository has been archived by the owner on Jun 27, 2023. It is now read-only.

vsonnier/hppcrt

Repository files navigation

##HPPC-RT: High Performance Primitive Collections "RealTime"

This is a fork of HPPC from CarrotSearch, see JavaDoc and documentation at: http://labs.carrotsearch.com/hppc.html for more info.

IMPORTANT: Developers - read INSTALL file for proper Eclipse setup!

---------------------------------------

This fork intend to follow the original HPPC as close as possible while 
adding, tweaking, and even modifiying some features, for the goal of improving HPPC realtime behaviour. 
Most of the internal modifications intend to reach zero temporaries Objects creation at runtime.
A way is also to add convenient methods/API that allow filling and reuse of pre-existing Objects. 

###Unordered List of changes:
1. Tweaked internal implementation to remove dynamic allocation of temporary Objects

2. Pooled Iterators: ability to use iterators the usual way, without creating Iterator instances
dynamically at runtime. 
That means in particular using the enhanced for loop without any dynamic allocation underneath.

3. Faster clear(), resize() and such, using a memcpy-like technique offering 2x speed gain in clear()-like operations
especially noticable for big container sizes. 

4.  toArray(existing array) for every container, good for array reuse in RealTime environnement

5.  Primitive and Objects in-place array sorts, similar to java.util.Arrays with Comparable and Comparator versions.

6.  Optimized in-place sort methods for ArrayLists, LinkedLists, ArrayDeques, Stacks.

7.  Custom hashing strategies to override the usual equals()/hashCode() in Hash containers, in specific CustomHash classes

8.  Heaps : Priority queues, and Indexed (a.k.a indirect) priority queues

9.  Double linked-lists, supporting all operations common to lists and dequeues, with rich bi-derectional iterating methods.

10.  Custom default values for methods returning default values in some circonstances (see Javadoc)

11.  Boolean versions of containers when it makes sense: lists, queues, stacks, values of Maps.

and some small other performance and API tweaks....

All these new features are Unit tested, so should work reasonably well.

Stable version is published on Maven:
````
<dependency>
    <groupId>com.github.vsonnier</groupId>
    <artifactId>hppcrt</artifactId>
    <version>0.6.6</version>
</dependency>
````



Packages

No packages published

Languages

  • Java 98.2%
  • ANTLR 1.5%
  • HTML 0.3%