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 M5 Pro
Number of Available Cores 18
Available Memory 48 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 %
StaticGenerator.project/1 9.78 K 0.102 ms ±8.55% 0.103 ms 0.127 ms
GraphProjector.validate/1 0.91 K 1.10 ms ±3.32% 1.10 ms 1.19 ms

Run Time Comparison

Name IPS Slower
StaticGenerator.project/1 9.78 K  
GraphProjector.validate/1 0.91 K 10.74x

Memory Usage

Name Average Factor
StaticGenerator.project/1 0.0717 MB  
GraphProjector.validate/1 2.38 MB 33.18x

Input: 100 entries

Run Time

Name IPS Average Deviation Median 99th %
StaticGenerator.project/1 944.59 1.06 ms ±5.79% 1.04 ms 1.34 ms
GraphProjector.validate/1 904.26 1.11 ms ±2.68% 1.10 ms 1.19 ms

Run Time Comparison

Name IPS Slower
StaticGenerator.project/1 944.59  
GraphProjector.validate/1 904.26 1.04x

Memory Usage

Name Average Factor
StaticGenerator.project/1 0.73 MB  
GraphProjector.validate/1 2.38 MB 3.25x

Input: 500 entries

Run Time

Name IPS Average Deviation Median 99th %
GraphProjector.validate/1 897.61 1.11 ms ±2.95% 1.11 ms 1.20 ms
StaticGenerator.project/1 159.61 6.27 ms ±13.74% 6.28 ms 7.67 ms

Run Time Comparison

Name IPS Slower
GraphProjector.validate/1 897.61  
StaticGenerator.project/1 159.61 5.62x

Memory Usage

Name Average Factor
GraphProjector.validate/1 2.38 MB  
StaticGenerator.project/1 3.69 MB 1.55x