|
1 | 1 | # Benchmark Report |
2 | 2 |
|
3 | | -> Generated on 2026-02-16 at 21:19:11 UTC |
| 3 | +> Generated on 2026-02-18 at 03:10:44 UTC |
4 | 4 | > |
5 | 5 | > System: linux | AMD EPYC 7763 64-Core Processor (4 cores) | 16GB RAM | Bun 1.3.9 |
6 | 6 |
|
|
22 | 22 |
|
23 | 23 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
24 | 24 | | :-------- | ------: | ------: | ------: | -----: | ------: | |
25 | | -| libpdf | 362.6 | 2.76ms | 3.88ms | ±1.62% | 182 | |
26 | | -| pdf-lib | 25.0 | 39.95ms | 44.72ms | ±3.76% | 13 | |
| 25 | +| libpdf | 411.5 | 2.43ms | 3.35ms | ±1.12% | 206 | |
| 26 | +| pdf-lib | 26.2 | 38.17ms | 43.03ms | ±3.52% | 14 | |
27 | 27 |
|
28 | | -- **libpdf** is 14.48x faster than pdf-lib |
| 28 | +- **libpdf** is 15.71x faster than pdf-lib |
29 | 29 |
|
30 | 30 | ### Create blank PDF |
31 | 31 |
|
32 | 32 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
33 | 33 | | :-------- | ------: | ----: | -----: | -----: | ------: | |
34 | | -| libpdf | 10.7K | 94us | 184us | ±2.96% | 5,333 | |
35 | | -| pdf-lib | 2.3K | 437us | 1.65ms | ±2.65% | 1,143 | |
| 34 | +| libpdf | 17.4K | 57us | 128us | ±1.54% | 8,701 | |
| 35 | +| pdf-lib | 2.4K | 414us | 1.36ms | ±2.26% | 1,207 | |
36 | 36 |
|
37 | | -- **libpdf** is 4.67x faster than pdf-lib |
| 37 | +- **libpdf** is 7.21x faster than pdf-lib |
38 | 38 |
|
39 | 39 | ### Add 10 pages |
40 | 40 |
|
41 | 41 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
42 | 42 | | :-------- | ------: | ----: | -----: | -----: | ------: | |
43 | | -| libpdf | 5.7K | 174us | 653us | ±1.83% | 2,867 | |
44 | | -| pdf-lib | 1.9K | 540us | 2.13ms | ±3.10% | 926 | |
| 43 | +| libpdf | 10.4K | 96us | 148us | ±0.93% | 5,208 | |
| 44 | +| pdf-lib | 2.0K | 500us | 1.74ms | ±2.51% | 1,000 | |
45 | 45 |
|
46 | | -- **libpdf** is 3.10x faster than pdf-lib |
| 46 | +- **libpdf** is 5.21x faster than pdf-lib |
47 | 47 |
|
48 | 48 | ### Draw 50 rectangles |
49 | 49 |
|
50 | 50 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
51 | 51 | | :-------- | ------: | -----: | -----: | -----: | ------: | |
52 | | -| pdf-lib | 474.2 | 2.11ms | 7.63ms | ±9.71% | 238 | |
53 | | -| libpdf | 156.7 | 6.38ms | 8.63ms | ±2.56% | 79 | |
| 52 | +| libpdf | 1.3K | 755us | 2.17ms | ±3.05% | 663 | |
| 53 | +| pdf-lib | 611.8 | 1.63ms | 5.57ms | ±5.70% | 306 | |
54 | 54 |
|
55 | | -- **pdf-lib** is 3.03x faster than libpdf |
| 55 | +- **libpdf** is 2.17x faster than pdf-lib |
56 | 56 |
|
57 | 57 | ### Load and save PDF |
58 | 58 |
|
59 | 59 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
60 | 60 | | :-------- | ------: | ------: | -------: | -----: | ------: | |
61 | | -| libpdf | 339.6 | 2.94ms | 5.18ms | ±3.06% | 171 | |
62 | | -| pdf-lib | 10.8 | 92.96ms | 109.93ms | ±5.74% | 10 | |
| 61 | +| libpdf | 403.6 | 2.48ms | 3.91ms | ±1.59% | 202 | |
| 62 | +| pdf-lib | 11.1 | 90.12ms | 102.16ms | ±5.69% | 10 | |
63 | 63 |
|
64 | | -- **libpdf** is 31.57x faster than pdf-lib |
| 64 | +- **libpdf** is 36.37x faster than pdf-lib |
65 | 65 |
|
66 | 66 | ### Load, modify, and save PDF |
67 | 67 |
|
68 | 68 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
69 | 69 | | :-------- | ------: | ------: | ------: | -----: | ------: | |
70 | | -| libpdf | 13.5 | 73.86ms | 88.68ms | ±8.49% | 10 | |
71 | | -| pdf-lib | 11.5 | 87.10ms | 93.25ms | ±3.21% | 10 | |
| 70 | +| libpdf | 16.0 | 62.33ms | 68.33ms | ±5.52% | 10 | |
| 71 | +| pdf-lib | 11.6 | 86.08ms | 91.16ms | ±2.69% | 10 | |
72 | 72 |
|
73 | | -- **libpdf** is 1.18x faster than pdf-lib |
| 73 | +- **libpdf** is 1.38x faster than pdf-lib |
74 | 74 |
|
75 | 75 | ### Extract single page from 100-page PDF |
76 | 76 |
|
77 | 77 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
78 | 78 | | :-------- | ------: | -----: | ------: | -----: | ------: | |
79 | | -| libpdf | 183.8 | 5.44ms | 8.10ms | ±2.45% | 92 | |
80 | | -| pdf-lib | 104.3 | 9.58ms | 11.64ms | ±1.78% | 53 | |
| 79 | +| libpdf | 262.5 | 3.81ms | 4.60ms | ±1.23% | 132 | |
| 80 | +| pdf-lib | 111.6 | 8.96ms | 10.31ms | ±1.20% | 56 | |
81 | 81 |
|
82 | | -- **libpdf** is 1.76x faster than pdf-lib |
| 82 | +- **libpdf** is 2.35x faster than pdf-lib |
83 | 83 |
|
84 | 84 | ### Split 100-page PDF into single-page PDFs |
85 | 85 |
|
86 | 86 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
87 | 87 | | :-------- | ------: | ------: | -------: | -----: | ------: | |
88 | | -| pdf-lib | 11.1 | 90.04ms | 95.21ms | ±5.07% | 6 | |
89 | | -| libpdf | 10.7 | 93.65ms | 104.73ms | ±9.17% | 6 | |
| 88 | +| libpdf | 29.8 | 33.54ms | 39.85ms | ±3.44% | 15 | |
| 89 | +| pdf-lib | 11.1 | 89.90ms | 104.64ms | ±8.74% | 6 | |
90 | 90 |
|
91 | | -- **pdf-lib** is 1.04x faster than libpdf |
| 91 | +- **libpdf** is 2.68x faster than pdf-lib |
92 | 92 |
|
93 | 93 | ### Split 2000-page PDF into single-page PDFs (0.9MB) |
94 | 94 |
|
95 | | -| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
96 | | -| :-------- | ------: | ----: | ----: | -----: | ------: | |
97 | | -| libpdf | 0.627 | 1.60s | 1.60s | ±0.00% | 1 | |
98 | | -| pdf-lib | 0.585 | 1.71s | 1.71s | ±0.00% | 1 | |
| 95 | +| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
| 96 | +| :-------- | ------: | -------: | -------: | -----: | ------: | |
| 97 | +| libpdf | 1.6 | 608.02ms | 608.02ms | ±0.00% | 1 | |
| 98 | +| pdf-lib | 0.615 | 1.63s | 1.63s | ±0.00% | 1 | |
99 | 99 |
|
100 | | -- **libpdf** is 1.07x faster than pdf-lib |
| 100 | +- **libpdf** is 2.67x faster than pdf-lib |
101 | 101 |
|
102 | 102 | ### Copy 10 pages between documents |
103 | 103 |
|
104 | 104 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
105 | 105 | | :-------- | ------: | ------: | ------: | -----: | ------: | |
106 | | -| libpdf | 103.7 | 9.64ms | 14.56ms | ±3.04% | 52 | |
107 | | -| pdf-lib | 78.9 | 12.67ms | 14.16ms | ±1.65% | 40 | |
| 106 | +| libpdf | 208.8 | 4.79ms | 5.64ms | ±1.01% | 105 | |
| 107 | +| pdf-lib | 85.5 | 11.69ms | 12.54ms | ±1.23% | 43 | |
108 | 108 |
|
109 | | -- **libpdf** is 1.31x faster than pdf-lib |
| 109 | +- **libpdf** is 2.44x faster than pdf-lib |
110 | 110 |
|
111 | 111 | ### Merge 2 x 100-page PDFs |
112 | 112 |
|
113 | 113 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
114 | 114 | | :-------- | ------: | ------: | ------: | -----: | ------: | |
115 | | -| pdf-lib | 17.9 | 55.88ms | 58.47ms | ±1.91% | 9 | |
116 | | -| libpdf | 12.6 | 79.05ms | 79.54ms | ±0.45% | 7 | |
| 115 | +| libpdf | 66.1 | 15.13ms | 16.94ms | ±1.11% | 34 | |
| 116 | +| pdf-lib | 18.2 | 54.87ms | 64.18ms | ±4.43% | 10 | |
117 | 117 |
|
118 | | -- **pdf-lib** is 1.41x faster than libpdf |
| 118 | +- **libpdf** is 3.63x faster than pdf-lib |
119 | 119 |
|
120 | 120 | ## Copying |
121 | 121 |
|
122 | 122 | ### Copy pages between documents |
123 | 123 |
|
124 | | -| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
125 | | -| :------------------------------ | ------: | ------: | ------: | -----: | ------: | |
126 | | -| copy 1 page | 731.3 | 1.37ms | 2.63ms | ±3.01% | 366 | |
127 | | -| copy 10 pages from 100-page PDF | 113.0 | 8.85ms | 12.36ms | ±2.59% | 57 | |
128 | | -| copy all 100 pages | 25.7 | 38.97ms | 41.36ms | ±1.41% | 13 | |
| 124 | +| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
| 125 | +| :------------------------------ | ------: | -----: | -----: | -----: | ------: | |
| 126 | +| copy 1 page | 943.3 | 1.06ms | 2.57ms | ±3.23% | 472 | |
| 127 | +| copy 10 pages from 100-page PDF | 215.5 | 4.64ms | 5.59ms | ±1.87% | 108 | |
| 128 | +| copy all 100 pages | 133.1 | 7.51ms | 8.26ms | ±0.88% | 67 | |
129 | 129 |
|
130 | | -- **copy 1 page** is 6.47x faster than copy 10 pages from 100-page PDF |
131 | | -- **copy 1 page** is 28.50x faster than copy all 100 pages |
| 130 | +- **copy 1 page** is 4.38x faster than copy 10 pages from 100-page PDF |
| 131 | +- **copy 1 page** is 7.09x faster than copy all 100 pages |
132 | 132 |
|
133 | 133 | ### Duplicate pages within same document |
134 | 134 |
|
135 | | -| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
136 | | -| :---------------------------------------- | ------: | -----: | -----: | -----: | ------: | |
137 | | -| duplicate page 0 | 779.3 | 1.28ms | 2.49ms | ±2.00% | 390 | |
138 | | -| duplicate all pages (double the document) | 778.8 | 1.28ms | 2.48ms | ±2.14% | 390 | |
| 135 | +| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
| 136 | +| :---------------------------------------- | ------: | ----: | -----: | -----: | ------: | |
| 137 | +| duplicate page 0 | 1.0K | 983us | 1.72ms | ±1.32% | 509 | |
| 138 | +| duplicate all pages (double the document) | 1.0K | 983us | 1.66ms | ±1.21% | 509 | |
139 | 139 |
|
140 | 140 | - **duplicate page 0** is 1.00x faster than duplicate all pages (double the document) |
141 | 141 |
|
142 | 142 | ### Merge PDFs |
143 | 143 |
|
144 | 144 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
145 | 145 | | :---------------------- | ------: | ------: | ------: | -----: | ------: | |
146 | | -| merge 2 small PDFs | 511.1 | 1.96ms | 3.22ms | ±1.91% | 256 | |
147 | | -| merge 10 small PDFs | 93.4 | 10.71ms | 14.59ms | ±2.26% | 47 | |
148 | | -| merge 2 x 100-page PDFs | 13.0 | 77.00ms | 82.43ms | ±3.35% | 7 | |
| 146 | +| merge 2 small PDFs | 671.5 | 1.49ms | 1.85ms | ±0.57% | 336 | |
| 147 | +| merge 10 small PDFs | 124.0 | 8.07ms | 8.79ms | ±0.67% | 62 | |
| 148 | +| merge 2 x 100-page PDFs | 70.2 | 14.25ms | 15.09ms | ±0.78% | 36 | |
149 | 149 |
|
150 | | -- **merge 2 small PDFs** is 5.47x faster than merge 10 small PDFs |
151 | | -- **merge 2 small PDFs** is 39.35x faster than merge 2 x 100-page PDFs |
| 150 | +- **merge 2 small PDFs** is 5.42x faster than merge 10 small PDFs |
| 151 | +- **merge 2 small PDFs** is 9.57x faster than merge 2 x 100-page PDFs |
152 | 152 |
|
153 | 153 | ## Drawing |
154 | 154 |
|
155 | | -| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
156 | | -| :---------------------------------- | ------: | ------: | ------: | -----: | ------: | |
157 | | -| draw 100 lines | 91.8 | 10.89ms | 13.01ms | ±1.41% | 46 | |
158 | | -| draw 100 rectangles | 79.3 | 12.61ms | 16.38ms | ±3.74% | 40 | |
159 | | -| draw 100 circles | 69.0 | 14.50ms | 18.01ms | ±2.25% | 35 | |
160 | | -| draw 100 text lines (standard font) | 64.9 | 15.41ms | 20.87ms | ±3.54% | 33 | |
161 | | -| create 10 pages with mixed content | 46.8 | 21.39ms | 22.42ms | ±1.20% | 24 | |
| 155 | +| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
| 156 | +| :---------------------------------- | ------: | -----: | -----: | -----: | ------: | |
| 157 | +| draw 100 lines | 808.5 | 1.24ms | 2.77ms | ±3.08% | 406 | |
| 158 | +| draw 100 rectangles | 660.8 | 1.51ms | 3.58ms | ±4.40% | 331 | |
| 159 | +| draw 100 text lines (standard font) | 298.7 | 3.35ms | 7.24ms | ±4.47% | 150 | |
| 160 | +| draw 100 circles | 285.0 | 3.51ms | 6.89ms | ±5.03% | 143 | |
| 161 | +| create 10 pages with mixed content | 247.6 | 4.04ms | 8.41ms | ±6.35% | 125 | |
162 | 162 |
|
163 | | -- **draw 100 lines** is 1.16x faster than draw 100 rectangles |
164 | | -- **draw 100 lines** is 1.33x faster than draw 100 circles |
165 | | -- **draw 100 lines** is 1.41x faster than draw 100 text lines (standard font) |
166 | | -- **draw 100 lines** is 1.96x faster than create 10 pages with mixed content |
| 163 | +- **draw 100 lines** is 1.22x faster than draw 100 rectangles |
| 164 | +- **draw 100 lines** is 2.71x faster than draw 100 text lines (standard font) |
| 165 | +- **draw 100 lines** is 2.84x faster than draw 100 circles |
| 166 | +- **draw 100 lines** is 3.27x faster than create 10 pages with mixed content |
167 | 167 |
|
168 | 168 | ## Forms |
169 | 169 |
|
170 | 170 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
171 | 171 | | :---------------- | ------: | ------: | ------: | -----: | ------: | |
172 | | -| read field values | 286.0 | 3.50ms | 6.12ms | ±2.24% | 143 | |
173 | | -| get form fields | 247.2 | 4.05ms | 9.66ms | ±5.08% | 124 | |
174 | | -| flatten form | 74.3 | 13.46ms | 17.19ms | ±2.79% | 38 | |
175 | | -| fill text fields | 55.3 | 18.07ms | 24.87ms | ±3.84% | 28 | |
| 172 | +| read field values | 318.4 | 3.14ms | 3.95ms | ±1.49% | 160 | |
| 173 | +| get form fields | 277.2 | 3.61ms | 8.41ms | ±4.30% | 139 | |
| 174 | +| flatten form | 114.3 | 8.75ms | 10.98ms | ±2.13% | 58 | |
| 175 | +| fill text fields | 84.9 | 11.78ms | 16.83ms | ±3.91% | 43 | |
176 | 176 |
|
177 | | -- **read field values** is 1.16x faster than get form fields |
178 | | -- **read field values** is 3.85x faster than flatten form |
179 | | -- **read field values** is 5.17x faster than fill text fields |
| 177 | +- **read field values** is 1.15x faster than get form fields |
| 178 | +- **read field values** is 2.79x faster than flatten form |
| 179 | +- **read field values** is 3.75x faster than fill text fields |
180 | 180 |
|
181 | 181 | ## Loading |
182 | 182 |
|
183 | 183 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
184 | 184 | | :--------------------- | ------: | -----: | -----: | -----: | ------: | |
185 | | -| load small PDF (888B) | 14.7K | 68us | 139us | ±1.61% | 7,359 | |
186 | | -| load medium PDF (19KB) | 9.7K | 103us | 197us | ±1.32% | 4,852 | |
187 | | -| load form PDF (116KB) | 661.3 | 1.51ms | 2.71ms | ±2.06% | 331 | |
188 | | -| load heavy PDF (9.9MB) | 417.6 | 2.39ms | 3.61ms | ±1.55% | 209 | |
| 185 | +| load small PDF (888B) | 15.8K | 63us | 143us | ±0.83% | 7,919 | |
| 186 | +| load medium PDF (19KB) | 10.1K | 99us | 127us | ±0.44% | 5,052 | |
| 187 | +| load form PDF (116KB) | 743.6 | 1.34ms | 2.45ms | ±1.34% | 372 | |
| 188 | +| load heavy PDF (9.9MB) | 400.4 | 2.50ms | 2.91ms | ±0.62% | 201 | |
189 | 189 |
|
190 | | -- **load small PDF (888B)** is 1.52x faster than load medium PDF (19KB) |
191 | | -- **load small PDF (888B)** is 22.25x faster than load form PDF (116KB) |
192 | | -- **load small PDF (888B)** is 35.24x faster than load heavy PDF (9.9MB) |
| 190 | +- **load small PDF (888B)** is 1.57x faster than load medium PDF (19KB) |
| 191 | +- **load small PDF (888B)** is 21.30x faster than load form PDF (116KB) |
| 192 | +- **load small PDF (888B)** is 39.56x faster than load heavy PDF (9.9MB) |
193 | 193 |
|
194 | 194 | ## Saving |
195 | 195 |
|
196 | | -| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
197 | | -| :--------------------------------- | ------: | -----: | -----: | -----: | ------: | |
198 | | -| save unmodified (19KB) | 7.9K | 126us | 321us | ±1.64% | 3,956 | |
199 | | -| incremental save (19KB) | 1.9K | 527us | 1.06ms | ±1.51% | 948 | |
200 | | -| save with modifications (19KB) | 762.8 | 1.31ms | 2.72ms | ±2.37% | 382 | |
201 | | -| save heavy PDF (9.9MB) | 413.5 | 2.42ms | 3.13ms | ±1.12% | 207 | |
202 | | -| incremental save heavy PDF (9.9MB) | 137.6 | 7.26ms | 7.58ms | ±0.44% | 69 | |
| 196 | +| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
| 197 | +| :--------------------------------- | ------: | -----: | ------: | ------: | ------: | |
| 198 | +| save unmodified (19KB) | 8.9K | 112us | 276us | ±0.99% | 4,474 | |
| 199 | +| incremental save (19KB) | 5.5K | 183us | 379us | ±0.99% | 2,734 | |
| 200 | +| save with modifications (19KB) | 1.3K | 785us | 1.48ms | ±1.50% | 638 | |
| 201 | +| save heavy PDF (9.9MB) | 449.8 | 2.22ms | 2.87ms | ±1.08% | 225 | |
| 202 | +| incremental save heavy PDF (9.9MB) | 134.9 | 7.41ms | 20.74ms | ±11.74% | 68 | |
203 | 203 |
|
204 | | -- **save unmodified (19KB)** is 4.17x faster than incremental save (19KB) |
205 | | -- **save unmodified (19KB)** is 10.37x faster than save with modifications (19KB) |
206 | | -- **save unmodified (19KB)** is 19.13x faster than save heavy PDF (9.9MB) |
207 | | -- **save unmodified (19KB)** is 57.48x faster than incremental save heavy PDF (9.9MB) |
| 204 | +- **save unmodified (19KB)** is 1.64x faster than incremental save (19KB) |
| 205 | +- **save unmodified (19KB)** is 7.02x faster than save with modifications (19KB) |
| 206 | +- **save unmodified (19KB)** is 19.89x faster than save heavy PDF (9.9MB) |
| 207 | +- **save unmodified (19KB)** is 66.30x faster than incremental save heavy PDF (9.9MB) |
208 | 208 |
|
209 | 209 | ## Splitting |
210 | 210 |
|
211 | 211 | ### Extract single page |
212 | 212 |
|
213 | 213 | | Benchmark | ops/sec | Mean | p99 | RME | Samples | |
214 | 214 | | :--------------------------------------- | ------: | ------: | ------: | -----: | ------: | |
215 | | -| extractPages (1 page from small PDF) | 753.5 | 1.33ms | 2.47ms | ±2.83% | 377 | |
216 | | -| extractPages (1 page from 100-page PDF) | 197.6 | 5.06ms | 9.10ms | ±3.08% | 99 | |
217 | | -| extractPages (1 page from 2000-page PDF) | 13.1 | 76.08ms | 78.10ms | ±1.22% | 10 | |
| 215 | +| extractPages (1 page from small PDF) | 959.0 | 1.04ms | 2.53ms | ±2.98% | 480 | |
| 216 | +| extractPages (1 page from 100-page PDF) | 267.3 | 3.74ms | 4.41ms | ±0.81% | 134 | |
| 217 | +| extractPages (1 page from 2000-page PDF) | 16.8 | 59.59ms | 60.99ms | ±0.99% | 10 | |
218 | 218 |
|
219 | | -- **extractPages (1 page from small PDF)** is 3.81x faster than extractPages (1 page from 100-page PDF) |
220 | | -- **extractPages (1 page from small PDF)** is 57.32x faster than extractPages (1 page from 2000-page PDF) |
| 219 | +- **extractPages (1 page from small PDF)** is 3.59x faster than extractPages (1 page from 100-page PDF) |
| 220 | +- **extractPages (1 page from small PDF)** is 57.14x faster than extractPages (1 page from 2000-page PDF) |
221 | 221 |
|
222 | 222 | ### Split into single-page PDFs |
223 | 223 |
|
224 | | -| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
225 | | -| :-------------------------- | ------: | ------: | -------: | -----: | ------: | |
226 | | -| split 100-page PDF (0.1MB) | 10.9 | 91.83ms | 102.50ms | ±6.62% | 6 | |
227 | | -| split 2000-page PDF (0.9MB) | 0.650 | 1.54s | 1.54s | ±0.00% | 1 | |
| 224 | +| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
| 225 | +| :-------------------------- | ------: | -------: | -------: | -----: | ------: | |
| 226 | +| split 100-page PDF (0.1MB) | 30.9 | 32.33ms | 41.27ms | ±4.47% | 16 | |
| 227 | +| split 2000-page PDF (0.9MB) | 1.7 | 587.14ms | 587.14ms | ±0.00% | 1 | |
228 | 228 |
|
229 | | -- **split 100-page PDF (0.1MB)** is 16.76x faster than split 2000-page PDF (0.9MB) |
| 229 | +- **split 100-page PDF (0.1MB)** is 18.16x faster than split 2000-page PDF (0.9MB) |
230 | 230 |
|
231 | 231 | ### Batch page extraction |
232 | 232 |
|
233 | | -| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
234 | | -| :----------------------------------------------------- | ------: | -------: | -------: | -----: | ------: | |
235 | | -| extract first 10 pages from 2000-page PDF | 12.2 | 81.95ms | 91.73ms | ±4.95% | 7 | |
236 | | -| extract first 100 pages from 2000-page PDF | 9.2 | 109.19ms | 110.20ms | ±1.20% | 5 | |
237 | | -| extract every 10th page from 2000-page PDF (200 pages) | 8.0 | 125.67ms | 127.43ms | ±1.82% | 4 | |
| 233 | +| Benchmark | ops/sec | Mean | p99 | RME | Samples | |
| 234 | +| :----------------------------------------------------- | ------: | ------: | ------: | ------: | ------: | |
| 235 | +| extract first 10 pages from 2000-page PDF | 16.4 | 61.01ms | 62.55ms | ±1.12% | 9 | |
| 236 | +| extract first 100 pages from 2000-page PDF | 15.6 | 64.07ms | 65.38ms | ±0.92% | 8 | |
| 237 | +| extract every 10th page from 2000-page PDF (200 pages) | 13.9 | 71.87ms | 93.23ms | ±12.25% | 7 | |
238 | 238 |
|
239 | | -- **extract first 10 pages from 2000-page PDF** is 1.33x faster than extract first 100 pages from 2000-page PDF |
240 | | -- **extract first 10 pages from 2000-page PDF** is 1.53x faster than extract every 10th page from 2000-page PDF (200 pages) |
| 239 | +- **extract first 10 pages from 2000-page PDF** is 1.05x faster than extract first 100 pages from 2000-page PDF |
| 240 | +- **extract first 10 pages from 2000-page PDF** is 1.18x faster than extract every 10th page from 2000-page PDF (200 pages) |
241 | 241 |
|
242 | 242 | --- |
243 | 243 |
|
|
0 commit comments