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 |