siniarskimar / zglgen

OpenGL bindings generator written in Zig
zlib License
2 stars 1 forks source link

Use an ArenaAllocator in parseRegistry #19

Closed siniarskimar closed 6 months ago

siniarskimar commented 6 months ago
Benchmark 1: ./zig-out/bin/zglgen --api gl:4.6
  Time (mean ± σ):      1.355 s ±  0.010 s    [User: 0.867 s, System: 0.453 s]
  Range (min … max):    1.343 s …  1.380 s    10 runs

Benchmark 2: ../zig-out/bin/zglgen --api gl:4.6
  Time (mean ± σ):      3.948 s ±  0.028 s    [User: 2.352 s, System: 1.520 s]
  Range (min … max):    3.913 s …  4.016 s    10 runs

Summary
  ./zig-out/bin/zglgen --api gl:4.6 ran
    2.91 ± 0.03 times faster than ../zig-out/bin/zglgen --api gl:4.6

I should experiment more with how the arena gets cleared.

siniarskimar commented 6 months ago

Should definitely experiment how arena gets cleared, -Doptimize=ReleaseSafe

Benchmark 1: ./zig-out/bin/zglgen --api gl:4.6
  Time (mean ± σ):     102.5 ms ±   1.2 ms    [User: 69.1 ms, System: 30.2 ms]
  Range (min … max):   101.0 ms … 105.2 ms    29 runs

Benchmark 2: ../zig-out/bin/zglgen --api gl:4.6
  Time (mean ± σ):      75.9 ms ±   1.4 ms    [User: 70.6 ms, System: 4.0 ms]
  Range (min … max):    73.6 ms …  78.5 ms    39 runs

Summary
  ../zig-out/bin/zglgen --api gl:4.6 ran
    1.35 ± 0.03 times faster than ./zig-out/bin/zglgen --api gl:4.6
siniarskimar commented 6 months ago

Debug:

>hyperfine --warmup 5 --runs 50 './zig-out/bin/zglgen --api gl:4.6' '../zig-out/bin/zglgen --api gl:4.6'
Benchmark 1: ./zig-out/bin/zglgen --api gl:4.6
  Time (mean ± σ):      1.295 s ±  0.015 s    [User: 0.838 s, System: 0.427 s]
  Range (min … max):    1.274 s …  1.333 s    50 runs

Benchmark 2: ../zig-out/bin/zglgen --api gl:4.6
  Time (mean ± σ):      3.949 s ±  0.041 s    [User: 2.344 s, System: 1.535 s]
  Range (min … max):    3.866 s …  4.020 s    50 runs

Summary
  ./zig-out/bin/zglgen --api gl:4.6 ran
    3.05 ± 0.05 times faster than ../zig-out/bin/zglgen --api gl:4.6

ReleaseSafe:

>hyperfine --warmup 10 --runs 100 './zig-out/bin/zglgen --api gl:4.6' '../zig-out/bin/zglgen --api gl:4.6'
Benchmark 1: ./zig-out/bin/zglgen --api gl:4.6
  Time (mean ± σ):      64.2 ms ±   0.7 ms    [User: 60.7 ms, System: 3.4 ms]
  Range (min … max):    62.7 ms …  66.7 ms    100 runs

Benchmark 2: ../zig-out/bin/zglgen --api gl:4.6
  Time (mean ± σ):      74.0 ms ±   1.4 ms    [User: 70.6 ms, System: 3.2 ms]
  Range (min … max):    71.3 ms …  77.8 ms    100 runs

Summary
  ./zig-out/bin/zglgen --api gl:4.6 ran
    1.15 ± 0.02 times faster than ../zig-out/bin/zglgen --api gl:4.6