2012-02-05

More progress and first data

I added a TreeMapQueue, CalendarQueue, PairingHeapQueue, FibonacciHeapQueue and EventHeapQueue to the benchmark (some of these datastructures were already present, just not in the benchmark).

I also ran the benchmark on MARLIN (the dedicated pc) and got the following raw results (the second column is max simulation time and the third is wall clock time in nanoseconds):

CalendarQueue;1000;12463543564
CalendarQueue;1000;12431540564
CalendarQueue;1000;12314603248
CalendarQueue;1000;12342168941
CalendarQueue;1000;12379956154
EncapsulatedSkipList;1000;12233962662
EncapsulatedSkipList;1000;12435363549
EncapsulatedSkipList;1000;13524316579
EncapsulatedSkipList;1000;12451756549
EncapsulatedSkipList;1000;13430291485
SkipList;1000;12442345820
SkipList;1000;13471379407
SkipList;1000;13259910859
SkipList;1000;13423150185
SkipList;1000;13433629771
JavaPriorityQueue;1000;11427608446
JavaPriorityQueue;1000;11331713344
JavaPriorityQueue;1000;11486361044
JavaPriorityQueue;1000;11447420677
JavaPriorityQueue;1000;11489319111
PairingHeapQueue;1000;12627835823
PairingHeapQueue;1000;12461527869
PairingHeapQueue;1000;12635402319
PairingHeapQueue;1000;12766900475
PairingHeapQueue;1000;12403462163
TreeMapQueue;1000;11477720945
TreeMapQueue;1000;11412306791
TreeMapQueue;1000;11567066375
TreeMapQueue;1000;11426513260
TreeMapQueue;1000;12277413812
FibonacciHeapQueue;1000;12358072838
FibonacciHeapQueue;1000;11414073432
FibonacciHeapQueue;1000;11296198337
FibonacciHeapQueue;1000;12390780696
FibonacciHeapQueue;1000;12356444144
HashMapQueue;1000;12510711908
HashMapQueue;1000;12231090920
HashMapQueue;1000;12543661825
HashMapQueue;1000;12463697651
HashMapQueue;1000;12440836556
EventHeapQueue;1000;11464068161
EventHeapQueue;1000;11328706434
EventHeapQueue;1000;11411157250
EventHeapQueue;1000;11466460866
EventHeapQueue;1000;11439271687

Selecting the median of each queue and setting the Java Priority Queue to 100% gives (lower is better)

EventHeapQueue99.9288137456%
JavaPriorityQueue100.0%
TreeMapQueue100.264690788%
FibonacciHeapQueue107.940858405%
CalendarQueue108.146249739%
EncapsulatedSkipList108.773468717%
HashMapQueue108.877781316%
PairingHeapQueue110.311625468%
SkipList117.259167491%
The EventHeap (binary heap) scores ever so slightly better than the java priority queue, but this difference is well within error margins and it's safe to assume they are pretty much equivalent. The TreeMapQueue is also a solid contender, which was to be expected because it's obviously closely related to a Heap. Although the calendar queue has access to exact firing times, which should give it an advantage over other datastructures, it fails to live up to expectations.

So, the score for today:
Oracle: 1
Ives: 0

Geen opmerkingen:

Een reactie posten