Faker.cpp v0.1.0
Manual Faker.cpp release built from 91a27de5b3f6ce8cda4bef24181504de1f3f7a0f. The planned stable release target remains v0.1.0; this project is still unlicensed.
Release Highlights
What changed: Performance reporting now separates aggregate workload context from per-generator comparisons.
What improved: Comparable benchmark changes under 5% are shown as runtime variance instead of regressions.
What is new: Full Linux and Windows per-generator tables are available in expandable sections below.
Full metrics: Download
performance.jsonfor machine-readable data orperformance.mdfor the complete Markdown report.Runtime note: This release does not change generator/runtime code from
v0.0.9; the performance tables are fresh GitHub runner measurements, not proof of a runtime optimization.
Performance Summary
Benchmark workload: 10 runs per OS, 1000000 rows per run, 55 generated values per row. The tables use median results.
Small per-generator movements below 5% are treated as runtime variance.
Performance tables show fresh-runner measurements for this release. Treat them as regression signals only when the related generator/runtime code changed.
The largest measured improvements are ipv6 on linux-x64 (42.43% faster), street_name on linux-x64 (38.14% faster), username on windows-x64 (35.85% faster), currency_code on linux-x64 (34.70% faster), uuid_v4 on windows-x64 (32.56% faster).
Aggregate rows are only directly comparable when the generated-result count is unchanged. Per-result rows show matching generators independently.
| OS | Median seconds | Best seconds | Rows/s | Calls/s | Previous |
|---|---|---|---|---|---|
| linux-x64 | 3.097898 | 3.085092 | 322799.53 | 17753974.42 | 11.14% faster |
| windows-x64 | 5.492775 | 5.460589 | 182057.33 | 10013153.37 | within runtime variance (1.38% faster) |
New Benchmark Results
linux-x64: 44 improved, 0 possible regressions, 11 within runtime variance, 0 new results.windows-x64: 10 improved, 17 possible regressions, 28 within runtime variance, 0 new results.
Full Per-Generator Results
linux-x64 full result table
| Result | Median seconds | Best seconds | Rows/s | Calls/s | Previous |
|---|---|---|---|---|---|
boolean |
0.010726 | 0.010702 | 93232486.86 | 93232486.86 | within runtime variance (4.16% faster) |
number_int |
0.006370 | 0.006321 | 156995877.60 | 156995877.60 | within runtime variance (1.03% faster) |
number_real |
0.010642 | 0.010581 | 93963092.14 | 93963092.14 | 6.18% faster |
uuid_v4 |
0.099273 | 0.099079 | 10073264.36 | 10073264.36 | 20.49% faster |
first_name |
0.009825 | 0.009745 | 101782367.01 | 101782367.01 | 29.00% faster |
last_name |
0.010908 | 0.010867 | 91672632.26 | 91672632.26 | 19.33% faster |
full_name |
0.022885 | 0.022777 | 43697372.80 | 43697372.80 | 17.49% faster |
name_prefix |
0.014339 | 0.014281 | 69740629.02 | 69740629.02 | 12.63% faster |
name_suffix |
0.008114 | 0.008065 | 123245340.68 | 123245340.68 | 29.06% faster |
middle_name |
0.010139 | 0.010099 | 98624834.48 | 98624834.48 | 28.02% faster |
username |
0.087475 | 0.087338 | 11431782.71 | 11431782.71 | within runtime variance (4.36% faster) |
email |
0.165989 | 0.165728 | 6024497.54 | 6024497.54 | 10.78% faster |
domain_name |
0.098009 | 0.097883 | 10203106.09 | 10203106.09 | 16.44% faster |
url |
0.103521 | 0.102119 | 9659898.64 | 9659898.64 | 15.84% faster |
ipv4 |
0.083432 | 0.083144 | 11985741.14 | 11985741.14 | within runtime variance (3.93% faster) |
ipv6 |
0.089236 | 0.089182 | 11206252.63 | 11206252.63 | 42.43% faster |
mac_address |
0.049335 | 0.049176 | 20269677.52 | 20269677.52 | 26.16% faster |
password |
0.092924 | 0.092592 | 10761487.83 | 10761487.83 | within runtime variance (2.60% faster) |
user_agent |
0.025106 | 0.024758 | 39831403.23 | 39831403.23 | 5.52% faster |
phone_number |
0.051547 | 0.051367 | 19399807.59 | 19399807.59 | 15.79% faster |
building_number |
0.019915 | 0.019855 | 50213077.94 | 50213077.94 | 19.54% faster |
street_name |
0.010684 | 0.010662 | 93598074.24 | 93598074.24 | 38.14% faster |
street_address |
0.046055 | 0.045778 | 21713375.07 | 21713375.07 | 24.88% faster |
secondary_address |
0.029701 | 0.029524 | 33669313.24 | 33669313.24 | 7.94% faster |
city |
0.012094 | 0.012000 | 82686856.48 | 82686856.48 | 13.59% faster |
country |
0.011526 | 0.011455 | 86759099.52 | 86759099.52 | 15.82% faster |
state |
0.018091 | 0.017898 | 55275596.94 | 55275596.94 | 8.75% faster |
zip_code |
0.020947 | 0.020885 | 47739188.97 | 47739188.97 | 15.32% faster |
postal_code |
0.021108 | 0.021044 | 47375459.92 | 47375459.92 | 15.61% faster |
latitude |
0.010235 | 0.010214 | 97704525.00 | 97704525.00 | within runtime variance (3.98% faster) |
longitude |
0.010426 | 0.010401 | 95916052.74 | 95916052.74 | 5.48% faster |
company_name |
0.025715 | 0.025462 | 38888489.96 | 38888489.96 | 10.79% faster |
job_title |
0.021544 | 0.021306 | 46416656.19 | 46416656.19 | 6.95% faster |
word |
0.008817 | 0.008713 | 113420773.94 | 113420773.94 | 25.78% faster |
sentence |
0.092742 | 0.091288 | 10782640.43 | 10782640.43 | 12.64% faster |
paragraph |
0.340813 | 0.339744 | 2934157.42 | 2934157.42 | 5.76% faster |
past_date |
0.106166 | 0.106013 | 9419223.67 | 9419223.67 | 12.45% faster |
future_date |
0.106118 | 0.105851 | 9423461.95 | 9423461.95 | 14.71% faster |
recent_date |
0.090500 | 0.090329 | 11049736.39 | 11049736.39 | 14.78% faster |
credit_card_number |
0.094889 | 0.093832 | 10538616.52 | 10538616.52 | within runtime variance (1.64% faster) |
currency_code |
0.008925 | 0.008789 | 112050743.75 | 112050743.75 | 34.70% faster |
iban |
0.084372 | 0.084281 | 11852252.41 | 11852252.41 | 7.05% faster |
product_name |
0.035997 | 0.035905 | 27779896.38 | 27779896.38 | within runtime variance (2.59% faster) |
product_category |
0.014276 | 0.014195 | 70047961.14 | 70047961.14 | 11.30% faster |
price |
0.050485 | 0.050344 | 19807759.75 | 19807759.75 | 7.72% faster |
hex_string |
0.079862 | 0.079573 | 12521544.10 | 12521544.10 | within runtime variance (4.65% faster) |
md5 |
0.081152 | 0.080827 | 12322543.74 | 12322543.74 | within runtime variance (4.85% faster) |
sha1 |
0.097502 | 0.097002 | 10256171.47 | 10256171.47 | 5.48% faster |
sha256 |
0.149689 | 0.149161 | 6680505.98 | 6680505.98 | within runtime variance (3.91% faster) |
file_name |
0.066489 | 0.066337 | 15040116.20 | 15040116.20 | 10.78% faster |
file_path |
0.115215 | 0.114971 | 8679401.84 | 8679401.84 | 11.22% faster |
mime_type |
0.015855 | 0.015816 | 63070637.51 | 63070637.51 | 8.03% faster |
semver |
0.049261 | 0.049188 | 20300075.51 | 20300075.51 | 7.99% faster |
hex_color |
0.017557 | 0.017435 | 56956891.27 | 56956891.27 | 18.19% faster |
rgb_color |
0.083380 | 0.083207 | 11993321.09 | 11993321.09 | 10.29% faster |
windows-x64 full result table
| Result | Median seconds | Best seconds | Rows/s | Calls/s | Previous |
|---|---|---|---|---|---|
boolean |
0.007360 | 0.007315 | 135874180.51 | 135874180.51 | within runtime variance (2.09% slower) |
number_int |
0.007698 | 0.007643 | 129902183.66 | 129902183.66 | within runtime variance (0.94% faster) |
number_real |
0.008728 | 0.008694 | 114573129.16 | 114573129.16 | possible regression (9.58% slower) |
uuid_v4 |
0.111165 | 0.109999 | 8995608.79 | 8995608.79 | 32.56% faster |
first_name |
0.029806 | 0.028942 | 33549785.37 | 33549785.37 | within runtime variance (2.63% faster) |
last_name |
0.029831 | 0.029786 | 33521950.17 | 33521950.17 | 12.67% faster |
full_name |
0.047869 | 0.047673 | 20890215.65 | 20890215.65 | 24.21% faster |
name_prefix |
0.023675 | 0.023617 | 42238202.34 | 42238202.34 | 29.06% faster |
name_suffix |
0.020903 | 0.020789 | 47839450.80 | 47839450.80 | 16.40% faster |
middle_name |
0.029549 | 0.028950 | 33841520.16 | 33841520.16 | within runtime variance (2.08% slower) |
username |
0.151975 | 0.151398 | 6580020.95 | 6580020.95 | 35.85% faster |
email |
0.282758 | 0.282413 | 3536587.50 | 3536587.50 | within runtime variance (0.97% faster) |
domain_name |
0.167991 | 0.167721 | 5952692.76 | 5952692.76 | within runtime variance (4.82% faster) |
url |
0.171506 | 0.171114 | 5830701.50 | 5830701.50 | within runtime variance (4.13% faster) |
ipv4 |
0.112623 | 0.109904 | 8879180.98 | 8879180.98 | within runtime variance (2.50% slower) |
ipv6 |
0.106254 | 0.105912 | 9411432.54 | 9411432.54 | 18.33% faster |
mac_address |
0.218298 | 0.218113 | 4580903.45 | 4580903.45 | 6.01% faster |
password |
0.280097 | 0.279700 | 3570186.66 | 3570186.66 | within runtime variance (3.18% faster) |
user_agent |
0.066665 | 0.066337 | 15000386.26 | 15000386.26 | within runtime variance (1.10% faster) |
phone_number |
0.069082 | 0.068319 | 14475592.70 | 14475592.70 | within runtime variance (1.88% slower) |
building_number |
0.028240 | 0.028047 | 35410514.09 | 35410514.09 | within runtime variance (0.73% slower) |
street_name |
0.028878 | 0.028845 | 34627957.23 | 34627957.23 | possible regression (11.98% slower) |
street_address |
0.244748 | 0.244412 | 4085829.38 | 4085829.38 | within runtime variance (2.31% faster) |
secondary_address |
0.047808 | 0.047749 | 20916848.21 | 20916848.21 | possible regression (5.87% slower) |
city |
0.026629 | 0.026545 | 37553678.29 | 37553678.29 | possible regression (7.76% slower) |
country |
0.026521 | 0.025571 | 37705826.68 | 37705826.68 | possible regression (11.97% slower) |
state |
0.032988 | 0.032613 | 30314329.28 | 30314329.28 | possible regression (8.27% slower) |
zip_code |
0.031462 | 0.031301 | 31784576.85 | 31784576.85 | within runtime variance (4.11% slower) |
postal_code |
0.032613 | 0.032549 | 30662337.14 | 30662337.14 | possible regression (5.01% slower) |
latitude |
0.009115 | 0.009073 | 109712279.55 | 109712279.55 | possible regression (10.43% slower) |
longitude |
0.009445 | 0.008415 | 105872201.67 | 105872201.67 | within runtime variance (4.30% slower) |
company_name |
0.049876 | 0.049410 | 20049703.21 | 20049703.21 | possible regression (9.64% slower) |
job_title |
0.044744 | 0.044511 | 22349540.10 | 22349540.10 | within runtime variance (2.25% slower) |
word |
0.025238 | 0.024880 | 39622084.56 | 39622084.56 | possible regression (9.65% slower) |
sentence |
0.209652 | 0.207616 | 4769813.57 | 4769813.57 | possible regression (6.35% slower) |
paragraph |
0.709940 | 0.701919 | 1408570.43 | 1408570.43 | possible regression (6.02% slower) |
past_date |
0.134551 | 0.133981 | 7432098.49 | 7432098.49 | within runtime variance (2.69% slower) |
future_date |
0.134655 | 0.133724 | 7426385.95 | 7426385.95 | within runtime variance (3.89% slower) |
recent_date |
0.114024 | 0.113975 | 8770071.95 | 8770071.95 | within runtime variance (2.59% slower) |
credit_card_number |
0.183499 | 0.183239 | 5449609.10 | 5449609.10 | within runtime variance (2.61% slower) |
currency_code |
0.016824 | 0.016794 | 59437836.94 | 59437836.94 | possible regression (16.26% slower) |
iban |
0.140955 | 0.140761 | 7094470.32 | 7094470.32 | within runtime variance (2.23% slower) |
product_name |
0.061797 | 0.061243 | 16181910.57 | 16181910.57 | possible regression (6.55% slower) |
product_category |
0.030568 | 0.030457 | 32713949.23 | 32713949.23 | possible regression (9.73% slower) |
price |
0.085083 | 0.084449 | 11753229.20 | 11753229.20 | 6.77% faster |
hex_string |
0.139750 | 0.139345 | 7155640.18 | 7155640.18 | within runtime variance (1.51% slower) |
md5 |
0.099591 | 0.099285 | 10041017.56 | 10041017.56 | within runtime variance (4.09% faster) |
sha1 |
0.115772 | 0.115505 | 8637670.87 | 8637670.87 | 6.03% faster |
sha256 |
0.158144 | 0.157586 | 6323364.86 | 6323364.86 | within runtime variance (3.69% faster) |
file_name |
0.122693 | 0.122347 | 8150437.52 | 8150437.52 | within runtime variance (1.20% slower) |
file_path |
0.191332 | 0.191064 | 5226526.82 | 5226526.82 | within runtime variance (1.03% slower) |
mime_type |
0.038015 | 0.037320 | 26305232.77 | 26305232.77 | possible regression (7.36% slower) |
semver |
0.072698 | 0.072166 | 13755527.14 | 13755527.14 | possible regression (5.56% slower) |
hex_color |
0.022450 | 0.022183 | 44542933.82 | 44542933.82 | within runtime variance (0.46% slower) |
rgb_color |
0.128640 | 0.127372 | 7773652.99 | 7773652.99 | within runtime variance (0.80% faster) |
Full machine-readable and Markdown reports are attached as performance.json and performance.md.