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.20.4
Erlang Version 29.0.4

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 %
StaticGenerator.project/1 7.20 K 0.139 ms ±7.64% 0.139 ms 0.175 ms
GraphProjector.validate/1 0.72 K 1.39 ms ±2.33% 1.38 ms 1.48 ms

Run Time Comparison

Name IPS Slower
StaticGenerator.project/1 7.20 K  
GraphProjector.validate/1 0.72 K 9.99x

Memory Usage

Name Average Factor
StaticGenerator.project/1 0.0683 MB  
GraphProjector.validate/1 2.27 MB 33.24x

Input: 100 entries

Run Time

Name IPS Average Deviation Median 99th %
GraphProjector.validate/1 721.85 1.39 ms ±2.74% 1.38 ms 1.48 ms
StaticGenerator.project/1 705.41 1.42 ms ±5.09% 1.40 ms 1.68 ms

Run Time Comparison

Name IPS Slower
GraphProjector.validate/1 721.85  
StaticGenerator.project/1 705.41 1.02x

Memory Usage

Name Average Factor
GraphProjector.validate/1 2.27 MB  
StaticGenerator.project/1 0.70 MB 0.31x

Input: 500 entries

Run Time

Name IPS Average Deviation Median 99th %
GraphProjector.validate/1 723.32 1.38 ms ±4.09% 1.38 ms 1.50 ms
StaticGenerator.project/1 114.32 8.75 ms ±14.26% 8.16 ms 10.38 ms

Run Time Comparison

Name IPS Slower
GraphProjector.validate/1 723.32  
StaticGenerator.project/1 114.32 6.33x

Memory Usage

Name Average Factor
GraphProjector.validate/1 2.27 MB  
StaticGenerator.project/1 3.53 MB 1.55x