Pairing heap

Initial implementation of a twopass pairing heap with aux list.
Research papers linked in comments.

Where search/nsearch/last aren't needed, this gives much faster first(),
delete(), and insert().  Insert is O(1), and first/delete don't have to
walk the whole tree.

Also tested rb_old with parent pointers - it was better than the current
rb.h for memory loads, but still much worse than a pairing heap.

An array-based heap would be much faster if everything fits in memory,
but on a cold cache it has many more memory loads for most operations.
This commit is contained in:
Dave Watson
2016-02-29 11:22:52 -08:00
committed by Jason Evans
parent e3998c681d
commit 6bafa6678f
5 changed files with 270 additions and 0 deletions

2
src/ph.c Normal file
View File

@@ -0,0 +1,2 @@
#define JEMALLOC_PH_C_
#include "jemalloc/internal/jemalloc_internal.h"