@@ -22,53 +22,105 @@ Baselines are set generously (2-3x expected typical performance) to account for
2222
2323## Performance Baseline Report
2424
25- Run ` PerformanceBaselineTests.GeneratePerformanceBaselineReport ` explicitly to generate results.
25+ Generated: 2026-01-12 01:36:55 UTC
2626
2727### Spatial Trees
2828
29- | Test | Iterations | Baseline (ms) | Description |
30- | ----------------------- | ---------- | ------------- | ----------------------------------------- |
31- | QuadTree2DRangeQuery | 1,000 | 200 | Range queries on 10K elements |
32- | QuadTree2DBoundsQuery | 1,000 | 200 | Bounds queries on 10K elements |
33- | KdTree2DRangeQuery | 1,000 | 200 | Range queries on 10K elements |
34- | KdTree2DNearestNeighbor | 1,000 | 200 | Nearest neighbor queries on 10K elements |
35- | RTree2DRangeQuery | 1,000 | 200 | Range queries on 10K elements |
36- | OctTree3DRangeQuery | 1,000 | 200 | 3D range queries on 10K elements |
37- | KdTree3DRangeQuery | 1,000 | 200 | 3D range queries on 10K elements |
38- | QuadTree2DConstruction | 1 | 500 | Construct tree with 10K elements |
39- | KdTree2DConstruction | 1 | 500 | Construct balanced tree with 10K elements |
40- | RTree2DConstruction | 1 | 500 | Construct tree with 10K elements |
29+ <table data-sortable >
30+ <thead >
31+ <tr>
32+ <th align="left">Test</th>
33+ <th align="right">Iterations</th>
34+ <th align="right">Time (ms)</th>
35+ <th align="right">Baseline (ms)</th>
36+ <th align="right">% of Baseline</th>
37+ <th align="left">Status</th>
38+ </tr>
39+ </thead >
40+ <tbody >
41+ <tr><td align="left">QuadTree2DRangeQuery</td><td align="right">1K</td><td align="right">27</td><td align="right">200</td><td align="right">13.5%</td><td align="left">Pass</td></tr>
42+ <tr><td align="left">QuadTree2DBoundsQuery</td><td align="right">1K</td><td align="right">29</td><td align="right">200</td><td align="right">14.5%</td><td align="left">Pass</td></tr>
43+ <tr><td align="left">KdTree2DRangeQuery</td><td align="right">1K</td><td align="right">27</td><td align="right">200</td><td align="right">13.5%</td><td align="left">Pass</td></tr>
44+ <tr><td align="left">KdTree2DNearestNeighbor</td><td align="right">1K</td><td align="right">32</td><td align="right">200</td><td align="right">16.0%</td><td align="left">Pass</td></tr>
45+ <tr><td align="left">RTree2DRangeQuery</td><td align="right">1K</td><td align="right">2479</td><td align="right">200</td><td align="right">1239.5%</td><td align="left">FAIL</td></tr>
46+ <tr><td align="left">OctTree3DRangeQuery</td><td align="right">1K</td><td align="right">15</td><td align="right">200</td><td align="right">7.5%</td><td align="left">Pass</td></tr>
47+ <tr><td align="left">KdTree3DRangeQuery</td><td align="right">1K</td><td align="right">33</td><td align="right">200</td><td align="right">16.5%</td><td align="left">Pass</td></tr>
48+ <tr><td align="left">QuadTree2DConstruction</td><td align="right">1</td><td align="right">2</td><td align="right">500</td><td align="right">0.4%</td><td align="left">Pass</td></tr>
49+ <tr><td align="left">KdTree2DConstruction</td><td align="right">1</td><td align="right">2</td><td align="right">500</td><td align="right">0.4%</td><td align="left">Pass</td></tr>
50+ <tr><td align="left">RTree2DConstruction</td><td align="right">1</td><td align="right">1</td><td align="right">500</td><td align="right">0.2%</td><td align="left">Pass</td></tr>
51+ </tbody >
52+ </table >
4153
4254### PRNG
4355
44- | Test | Iterations | Baseline (ms) | Description |
45- | ---------------------- | ---------- | ------------- | ----------------------------- |
46- | PcgRandomNextInt | 1,000,000 | 500 | Integer generation throughput |
47- | PcgRandomNextFloat | 1,000,000 | 500 | Float generation throughput |
48- | XoroShiroRandomNextInt | 1,000,000 | 500 | Integer generation throughput |
49- | SplitMix64NextInt | 1,000,000 | 500 | Integer generation throughput |
50- | RomuDuoNextInt | 1,000,000 | 500 | Integer generation throughput |
56+ <table data-sortable >
57+ <thead >
58+ <tr>
59+ <th align="left">Test</th>
60+ <th align="right">Iterations</th>
61+ <th align="right">Time (ms)</th>
62+ <th align="right">Baseline (ms)</th>
63+ <th align="right">% of Baseline</th>
64+ <th align="left">Status</th>
65+ </tr>
66+ </thead >
67+ <tbody >
68+ <tr><td align="left">PcgRandomNextInt</td><td align="right">1M</td><td align="right">1</td><td align="right">500</td><td align="right">0.2%</td><td align="left">Pass</td></tr>
69+ <tr><td align="left">PcgRandomNextFloat</td><td align="right">1M</td><td align="right">5</td><td align="right">500</td><td align="right">1.0%</td><td align="left">Pass</td></tr>
70+ <tr><td align="left">XoroShiroRandomNextInt</td><td align="right">1M</td><td align="right">1</td><td align="right">500</td><td align="right">0.2%</td><td align="left">Pass</td></tr>
71+ <tr><td align="left">SplitMix64NextInt</td><td align="right">1M</td><td align="right">1</td><td align="right">500</td><td align="right">0.2%</td><td align="left">Pass</td></tr>
72+ <tr><td align="left">RomuDuoNextInt</td><td align="right">1M</td><td align="right">1</td><td align="right">500</td><td align="right">0.2%</td><td align="left">Pass</td></tr>
73+ </tbody >
74+ </table >
5175
5276### Pooling
5377
54- | Test | Iterations | Baseline (ms) | Description |
55- | -------------------- | ---------- | ------------- | -------------------------------- |
56- | ListPooling | 100,000 | 200 | List rent/return cycles |
57- | HashSetPooling | 100,000 | 200 | HashSet rent/return cycles |
58- | DictionaryPooling | 100,000 | 200 | Dictionary rent/return cycles |
59- | SystemArrayPool | 100,000 | 200 | Array rent/return cycles |
60- | StringBuilderPooling | 100,000 | 200 | StringBuilder rent/return cycles |
78+ <table data-sortable >
79+ <thead >
80+ <tr>
81+ <th align="left">Test</th>
82+ <th align="right">Iterations</th>
83+ <th align="right">Time (ms)</th>
84+ <th align="right">Baseline (ms)</th>
85+ <th align="right">% of Baseline</th>
86+ <th align="left">Status</th>
87+ </tr>
88+ </thead >
89+ <tbody >
90+ <tr><td align="left">ListPooling</td><td align="right">100K</td><td align="right">239504</td><td align="right">200</td><td align="right">119752.0%</td><td align="left">FAIL</td></tr>
91+ <tr><td align="left">HashSetPooling</td><td align="right">100K</td><td align="right">16503</td><td align="right">200</td><td align="right">8251.5%</td><td align="left">FAIL</td></tr>
92+ <tr><td align="left">DictionaryPooling</td><td align="right">100K</td><td align="right">16997</td><td align="right">200</td><td align="right">8498.5%</td><td align="left">FAIL</td></tr>
93+ <tr><td align="left">SystemArrayPool</td><td align="right">100K</td><td align="right">8</td><td align="right">200</td><td align="right">4.0%</td><td align="left">Pass</td></tr>
94+ <tr><td align="left">StringBuilderPooling</td><td align="right">100K</td><td align="right">16456</td><td align="right">200</td><td align="right">8228.0%</td><td align="left">FAIL</td></tr>
95+ </tbody >
96+ </table >
6197
6298### Serialization
6399
64- | Test | Iterations | Baseline (ms) | Description |
65- | ------------------- | ---------- | ------------- | ----------------------------------- |
66- | JsonSerialize | 10,000 | 500 | JSON serialization operations |
67- | JsonDeserialize | 10,000 | 500 | JSON deserialization operations |
68- | JsonRoundTrip | 10,000 | 1,000 | JSON serialize + deserialize |
69- | ProtobufSerialize | 10,000 | 500 | Protobuf serialization operations |
70- | ProtobufDeserialize | 10,000 | 500 | Protobuf deserialization operations |
71- | ProtobufRoundTrip | 10,000 | 1,000 | Protobuf serialize + deserialize |
100+ <table data-sortable >
101+ <thead >
102+ <tr>
103+ <th align="left">Test</th>
104+ <th align="right">Iterations</th>
105+ <th align="right">Time (ms)</th>
106+ <th align="right">Baseline (ms)</th>
107+ <th align="right">% of Baseline</th>
108+ <th align="left">Status</th>
109+ </tr>
110+ </thead >
111+ <tbody >
112+ <tr><td align="left">JsonSerialize</td><td align="right">10K</td><td align="right">43</td><td align="right">500</td><td align="right">8.6%</td><td align="left">Pass</td></tr>
113+ <tr><td align="left">JsonDeserialize</td><td align="right">10K</td><td align="right">64</td><td align="right">500</td><td align="right">12.8%</td><td align="left">Pass</td></tr>
114+ <tr><td align="left">JsonRoundTrip</td><td align="right">10K</td><td align="right">113</td><td align="right">1000</td><td align="right">11.3%</td><td align="left">Pass</td></tr>
115+ <tr><td align="left">ProtobufSerialize</td><td align="right">10K</td><td align="right">1169</td><td align="right">500</td><td align="right">233.8%</td><td align="left">FAIL</td></tr>
116+ <tr><td align="left">ProtobufDeserialize</td><td align="right">10K</td><td align="right">12</td><td align="right">500</td><td align="right">2.4%</td><td align="left">Pass</td></tr>
117+ <tr><td align="left">ProtobufRoundTrip</td><td align="right">10K</td><td align="right">1728</td><td align="right">1000</td><td align="right">172.8%</td><td align="left">FAIL</td></tr>
118+ </tbody >
119+ </table >
120+
121+ ### Summary
122+
123+ 19 passed, 7 failed out of 26 tests.
72124
73125<!-- BASELINE_PERFORMANCE_END -->
74126
0 commit comments