Presentation Projection

Copy Markdown View Source

Benchmark

Projection runs once per build over every entry at once, so it scales with the size of the documentation set rather than with any one document. Validation is measured alongside it because graph-backed hosts pay for it on every projector call — it reads a fixed 100-entry presentation and so does not vary with the input.

System

Benchmark suite executing on the following system:

Operating System macOS
CPU Information Apple M4 Max
Number of Available Cores 16
Available Memory 128 GB
Elixir Version 1.18.4
Erlang Version 27.3.4.15

Configuration

Benchmark suite executing with the following configuration:

:time 5 s
:parallel 1
:warmup 2 s

Statistics

Input: 10 entries

Run Time

Name IPS Average Deviation Median 99th %
GraphProjector.validate/1 175.92 K 5.68 µs ±74.30% 5.63 µs 7.79 µs
StaticGenerator.project/1 37.88 K 26.40 µs ±12.92% 25.21 µs 40.13 µs

Run Time Comparison

Name IPS Slower
GraphProjector.validate/1 175.92 K  
StaticGenerator.project/1 37.88 K 4.64x

Memory Usage

Name Average Factor
GraphProjector.validate/1 4.08 KB  
StaticGenerator.project/1 47.54 KB 11.66x

Input: 100 entries

Run Time

Name IPS Average Deviation Median 99th %
GraphProjector.validate/1 170.95 K 5.85 µs ±74.65% 5.71 µs 8.25 µs
StaticGenerator.project/1 4.03 K 248.08 µs ±4.60% 247 µs 292.60 µs

Run Time Comparison

Name IPS Slower
GraphProjector.validate/1 170.95 K  
StaticGenerator.project/1 4.03 K 42.41x

Memory Usage

Name Average Factor
GraphProjector.validate/1 4.08 KB  
StaticGenerator.project/1 477.02 KB 116.97x

Input: 500 entries

Run Time

Name IPS Average Deviation Median 99th %
GraphProjector.validate/1 172.69 K 0.00579 ms ±84.49% 0.00567 ms 0.00804 ms
StaticGenerator.project/1 0.50 K 2.00 ms ±39.25% 1.44 ms 3.39 ms

Run Time Comparison

Name IPS Slower
GraphProjector.validate/1 172.69 K  
StaticGenerator.project/1 0.50 K 345.37x

Memory Usage

Name Average Factor
GraphProjector.validate/1 0.00398 MB  
StaticGenerator.project/1 2.34 MB 588.49x