mirror of
https://github.com/Vladar4/FastStack
synced 2026-01-02 08:04:48 +00:00
No description
| doc | ||
| tools | ||
| chart_bench_int.png | ||
| chart_bench_ptr.png | ||
| faststack.nim | ||
| faststack.nimble | ||
| LICENSE | ||
| README.md | ||
FastStack
FastStack is dynamically resizable data structure optimized for fast iteration over the large arrays of similar elements avoiding memory fragmentation (e.g., update and rendering cycles of a game scene).
Tools
bench_int - Benchmark with int elements (low memory fragmentation case)
bench_ptr - Benchmark with ptr elements (high memory fragmentation case)
(using nimbench)
test - Unit testing suite (using unittest)
Benchmark (int)
type
Elem = ref object of RootObj
data: int
Comparing to seq and DoublyLinkedList on i5-2500K @ 4000MHz:
============================================================================
GlobalBenchmark relative time/iter iters/s
============================================================================
GlobalBenchmark 249.31ps 4.01G
============================================================================
bench_int.nim relative time/iter iters/s
============================================================================
Sequence 108.55us 9.21K
List 545.62us 1.83K
FastStack 115.65us 8.65K
- Seq: 100.00%
- List: 19.87%
- FastStack: 93.92%
Benchmark (ptr)
type
Elem = ref object of RootObj
data: pointer
Comparing to seq and DoublyLinkedList on i5-2500K @ 4000MHz:
============================================================================
GlobalBenchmark relative time/iter iters/s
============================================================================
GlobalBenchmark 249.31ps 4.01G
============================================================================
bench_ptr.nim relative time/iter iters/s
============================================================================
Sequence 1.65ms 607.54
List 2.21ms 452.28
FastStack 1.38ms 724.24
- Seq: 100.00%
- List: 74.44%
- FastStack: 119.21%

