Skip to content

Benchmarks for various priority queue implementations in Go, Rust, Zig, and C++

License

Notifications You must be signed in to change notification settings

JustinTimperio/pq-bench

Repository files navigation

PQ-Bench

Background

This repository contains benchmarks for various priority queue implementations in Go, Rust, Zig, and C++. All tests are single threaded and designed to try and reproduce roughly the same workload across all implementations. While these benchmarks are not perfect, they should give a rough idea of the performance of each implementation and how they might work in a real-world scenario.

Sister Repositories

Benchmarks

Benchmark

Language Time Spent (seconds)
RPQ 1.38
RPQ (Batch) 0.98
RPQ (Batch Parallel) 0.62
GPQ 5.54
GPQ (Batch) 4.83
GPQ (Batch Parallel) 2.98
Zig (STD LIB) 0.87
Rust (STD LIB) 0.72
Go (STD LIB) 3.61
C++ (STD LIB) 4.24
Python (STD LIB) 15.03

Features

Feature GPQ RPQ Go Heap Zig Priority Queue C++ Queue Rust Binary Heap
Enqueue
Dequeue
Disk Cache
Mutable Priority
Timeouts

About

Benchmarks for various priority queue implementations in Go, Rust, Zig, and C++

Resources

License

Stars

Watchers

Forks