Skip to content

Faker.cpp v0.1.2

Choose a tag to compare

@github-actions github-actions released this 29 May 21:19
· 1 commit to main since this release

Manual Faker.cpp release built from 03ae5cd3c2dd85d9b8326509c6e0c9d4d8551e4f. Faker.cpp is licensed under the Apache License 2.0.

Release Highlights

Release area: New features

Highlights:

  • Add formatted address helpers
  • Add release benchmark rows for the new address helpers

Notes:

  • Adds one-line and multi-line address helpers on Faker, location aliases, and namespace helpers.

Runtime code: Generator/runtime code changed; performance tables can be used as comparison signals for related changes.

Full metrics: Download performance.json for machine-readable data or performance.md for the complete Markdown report.

Performance Summary

Benchmark workload: 5 fresh runner instances per OS, 2 runs per runner, 1000000 rows per run, 57 generated values per row. The tables use median results across 10 total runs per OS.

Small per-generator movements below 5% are treated as runtime variance.

Performance tables compare fresh-runner measurements for this release against the previous release.

The benchmark workload grew from 55 to 57 generated values per row, so aggregate comparison is marked as workload changed.

Total median time changed: linux-x64 3.498s -> 3.691s, windows-x64 5.481s -> 5.963s.

The largest measured improvements are ipv6 on linux-x64 (62.28% faster), mac_address on linux-x64 (36.15% faster), currency_code on windows-x64 (19.96% faster), hex_string on linux-x64 (19.94% faster), md5 on linux-x64 (17.11% faster).

Aggregate rows are only directly comparable when the generated-result count is unchanged. Per-result rows show matching generators independently.

Legend: faster, measured slower, runtime variance, runner context, new result, workload changed, no previous metric.

OS Median seconds Best seconds Rows/s Calls/s Comparison
linux-x64 3.690915 2.904832 270935.53 15443325.32 workload changed: workload changed
windows-x64 5.963237 5.690578 167694.16 9558566.85 workload changed: workload changed

New Benchmark Results

  • linux-x64: 9 faster, 0 measured slower, 46 within runtime variance, 0 runner context, 2 new results.
  • windows-x64: 3 faster, 0 measured slower, 52 within runtime variance, 0 runner context, 2 new results.
  • linux-x64 new rows: full_address, mailing_address.
  • windows-x64 new rows: full_address, mailing_address.

Full Per-Generator Results

linux-x64 full result table
Result Median seconds Best seconds Rows/s Calls/s Comparison
boolean 0.012198 0.009443 81982242.07 81982242.07 runtime variance: within runtime variance (8.53% slower measured, run ranges overlap)
number_int 0.006902 0.005347 144877049.73 144877049.73 runtime variance: within runtime variance (6.79% slower measured, run ranges overlap)
number_real 0.012666 0.009818 78952792.27 78952792.27 runtime variance: within runtime variance (1.78% faster)
uuid_v4 0.087791 0.067567 11390670.24 11390670.24 runtime variance: within runtime variance (37.76% faster measured, run ranges overlap)
first_name 0.011717 0.008972 85345972.73 85345972.73 faster: 8.22% faster
last_name 0.012649 0.010099 79056664.26 79056664.26 runtime variance: within runtime variance (3.09% faster)
full_name 0.026496 0.020485 37742048.01 37742048.01 runtime variance: within runtime variance (1.08% faster)
name_prefix 0.017744 0.013845 56355639.70 56355639.70 runtime variance: within runtime variance (9.01% slower measured, run ranges overlap)
name_suffix 0.009723 0.007526 102845223.39 102845223.39 runtime variance: within runtime variance (7.70% faster measured, run ranges overlap)
middle_name 0.012074 0.009699 82820776.25 82820776.25 runtime variance: within runtime variance (7.59% faster measured, run ranges overlap)
username 0.093429 0.073755 10703354.80 10703354.80 runtime variance: within runtime variance (1.72% slower)
email 0.193087 0.150734 5179004.34 5179004.34 runtime variance: within runtime variance (3.32% slower)
domain_name 0.121447 0.094456 8234032.51 8234032.51 runtime variance: within runtime variance (5.98% slower measured, run ranges overlap)
url 0.126700 0.098620 7892640.23 7892640.23 runtime variance: within runtime variance (1.87% faster)
ipv4 0.091247 0.069961 10959306.99 10959306.99 runtime variance: within runtime variance (4.42% slower)
ipv6 0.083692 0.064594 11948630.31 11948630.31 faster: 62.28% faster
mac_address 0.050050 0.038620 19979957.51 19979957.51 faster: 36.15% faster
password 0.085931 0.066383 11637225.76 11637225.76 faster: 14.99% faster
user_agent 0.026882 0.020772 37199258.18 37199258.18 runtime variance: within runtime variance (0.80% faster)
phone_number 0.058409 0.044781 17120506.91 17120506.91 runtime variance: within runtime variance (2.41% faster)
building_number 0.024725 0.019796 40445301.15 40445301.15 runtime variance: within runtime variance (3.68% slower)
street_name 0.012144 0.009901 82345919.98 82345919.98 faster: 9.63% faster
street_address 0.053936 0.043670 18540597.80 18540597.80 runtime variance: within runtime variance (0.54% slower)
secondary_address 0.034151 0.026988 29281637.11 29281637.11 runtime variance: within runtime variance (3.50% slower)
full_address 0.169628 0.136012 5895261.83 5895261.83 new result: new result
mailing_address 0.212548 0.172519 4704820.85 4704820.85 new result: new result
city 0.014606 0.011590 68467037.08 68467037.08 runtime variance: within runtime variance (1.35% faster)
country 0.013685 0.011121 73070849.20 73070849.20 runtime variance: within runtime variance (2.24% slower)
state 0.021242 0.017067 47077493.91 47077493.91 runtime variance: within runtime variance (5.45% slower measured, run ranges overlap)
zip_code 0.024434 0.019657 40927201.66 40927201.66 runtime variance: within runtime variance (0.60% slower)
postal_code 0.024457 0.019699 40888041.65 40888041.65 runtime variance: within runtime variance (0.30% slower)
latitude 0.012208 0.009507 81912137.27 81912137.27 runtime variance: within runtime variance (12.83% slower measured, run ranges overlap)
longitude 0.012212 0.009484 81890021.70 81890021.70 runtime variance: within runtime variance (9.90% slower measured, run ranges overlap)
company_name 0.028308 0.023686 35325503.94 35325503.94 runtime variance: within runtime variance (0.47% faster)
job_title 0.024062 0.018865 41558813.75 41558813.75 runtime variance: within runtime variance (3.91% slower)
word 0.011097 0.008852 90116101.98 90116101.98 runtime variance: within runtime variance (0.13% slower)
sentence 0.096167 0.077442 10398591.59 10398591.59 runtime variance: within runtime variance (8.15% faster measured, run ranges overlap)
paragraph 0.343969 0.282019 2907242.70 2907242.70 runtime variance: within runtime variance (5.75% faster measured, run ranges overlap)
past_date 0.126824 0.098578 7884936.60 7884936.60 runtime variance: within runtime variance (3.79% slower)
future_date 0.127487 0.099726 7843941.31 7843941.31 runtime variance: within runtime variance (4.84% slower)
recent_date 0.107582 0.083411 9295213.45 9295213.45 runtime variance: within runtime variance (0.75% slower)
credit_card_number 0.096185 0.074643 10396671.21 10396671.21 faster: 5.30% faster
currency_code 0.011058 0.008300 90435840.16 90435840.16 faster: 8.65% faster
iban 0.091224 0.071443 10962051.51 10962051.51 runtime variance: within runtime variance (3.50% faster)
product_name 0.038682 0.031715 25851994.49 25851994.49 runtime variance: within runtime variance (4.06% slower)
product_category 0.015863 0.013011 63039786.05 63039786.05 runtime variance: within runtime variance (0.27% faster)
price 0.055824 0.043530 17913368.92 17913368.92 runtime variance: within runtime variance (0.37% slower)
hex_string 0.069904 0.053992 14305346.84 14305346.84 faster: 19.94% faster
md5 0.071953 0.054933 13897909.40 13897909.40 faster: 17.11% faster
sha1 0.084732 0.065525 11801904.79 11801904.79 runtime variance: within runtime variance (20.75% faster measured, run ranges overlap)
sha256 0.121014 0.093718 8263498.37 8263498.37 runtime variance: within runtime variance (28.57% faster measured, run ranges overlap)
file_name 0.076641 0.059856 13047839.39 13047839.39 runtime variance: within runtime variance (0.30% faster)
file_path 0.131158 0.101663 7624399.08 7624399.08 runtime variance: within runtime variance (0.71% slower)
mime_type 0.017344 0.013606 57655629.84 57655629.84 runtime variance: within runtime variance (0.35% slower)
semver 0.056066 0.043380 17836067.79 17836067.79 runtime variance: within runtime variance (3.45% slower)
hex_color 0.020260 0.015524 49358994.48 49358994.48 runtime variance: within runtime variance (2.46% faster)
rgb_color 0.096702 0.074927 10341073.05 10341073.05 runtime variance: within runtime variance (6.05% slower measured, run ranges overlap)
windows-x64 full result table
Result Median seconds Best seconds Rows/s Calls/s Comparison
boolean 0.006850 0.005974 145989663.93 145989663.93 faster: 7.06% faster
number_int 0.007349 0.007132 136068306.29 136068306.29 runtime variance: within runtime variance (5.07% faster measured, run ranges overlap)
number_real 0.008323 0.006296 120143210.71 120143210.71 runtime variance: within runtime variance (4.85% faster)
uuid_v4 0.140278 0.113829 7128686.33 7128686.33 runtime variance: within runtime variance (19.71% slower measured, run ranges overlap)
first_name 0.025920 0.022890 38580172.49 38580172.49 runtime variance: within runtime variance (12.19% faster measured, run ranges overlap)
last_name 0.026844 0.024164 37252758.10 37252758.10 runtime variance: within runtime variance (11.62% faster measured, run ranges overlap)
full_name 0.043481 0.041454 22998339.52 22998339.52 runtime variance: within runtime variance (10.64% faster measured, run ranges overlap)
name_prefix 0.021623 0.018353 46247372.57 46247372.57 runtime variance: within runtime variance (8.82% faster measured, run ranges overlap)
name_suffix 0.020281 0.015883 49306747.14 49306747.14 runtime variance: within runtime variance (4.34% faster)
middle_name 0.026077 0.022995 38347454.78 38347454.78 runtime variance: within runtime variance (11.57% faster measured, run ranges overlap)
username 0.147075 0.140563 6799235.90 6799235.90 runtime variance: within runtime variance (3.08% faster)
email 0.264115 0.262733 3786223.75 3786223.75 runtime variance: within runtime variance (6.47% faster measured, run ranges overlap)
domain_name 0.166158 0.161966 6018360.82 6018360.82 runtime variance: within runtime variance (1.08% faster)
url 0.172017 0.167658 5813380.60 5813380.60 runtime variance: within runtime variance (0.14% slower)
ipv4 0.103098 0.095236 9699546.84 9699546.84 runtime variance: within runtime variance (9.06% faster measured, run ranges overlap)
ipv6 0.118020 0.107232 8473168.86 8473168.86 runtime variance: within runtime variance (9.90% slower measured, run ranges overlap)
mac_address 0.222353 0.217279 4497362.41 4497362.41 runtime variance: within runtime variance (1.95% slower)
password 0.286834 0.283421 3486341.91 3486341.91 runtime variance: within runtime variance (2.09% slower)
user_agent 0.065881 0.061726 15178929.22 15178929.22 runtime variance: within runtime variance (0.42% faster)
phone_number 0.067977 0.066647 14710771.52 14710771.52 runtime variance: within runtime variance (2.25% faster)
building_number 0.027587 0.026098 36249154.94 36249154.94 runtime variance: within runtime variance (2.40% faster)
street_name 0.025669 0.022789 38957421.49 38957421.49 runtime variance: within runtime variance (8.50% faster measured, run ranges overlap)
street_address 0.244103 0.240680 4096628.82 4096628.82 runtime variance: within runtime variance (2.08% slower)
secondary_address 0.045130 0.041709 22158307.81 22158307.81 runtime variance: within runtime variance (6.03% faster measured, run ranges overlap)
full_address 0.264244 0.258207 3784373.94 3784373.94 new result: new result
mailing_address 0.334593 0.320996 2988702.55 2988702.55 new result: new result
city 0.024088 0.020823 41514188.51 41514188.51 runtime variance: within runtime variance (10.91% faster measured, run ranges overlap)
country 0.022932 0.020646 43607566.78 43607566.78 runtime variance: within runtime variance (14.34% faster measured, run ranges overlap)
state 0.029394 0.027390 34020259.06 34020259.06 runtime variance: within runtime variance (10.66% faster measured, run ranges overlap)
zip_code 0.029786 0.028525 33573157.59 33573157.59 runtime variance: within runtime variance (4.76% faster)
postal_code 0.031022 0.029819 32235032.07 32235032.07 runtime variance: within runtime variance (4.82% faster)
latitude 0.008457 0.006873 118243842.45 118243842.45 runtime variance: within runtime variance (7.42% faster measured, run ranges overlap)
longitude 0.008891 0.006892 112472022.58 112472022.58 runtime variance: within runtime variance (6.09% faster measured, run ranges overlap)
company_name 0.044916 0.042287 22263731.71 22263731.71 runtime variance: within runtime variance (11.61% faster measured, run ranges overlap)
job_title 0.040345 0.039656 24786157.43 24786157.43 runtime variance: within runtime variance (8.81% faster measured, run ranges overlap)
word 0.022448 0.018928 44547299.21 44547299.21 runtime variance: within runtime variance (11.05% faster measured, run ranges overlap)
sentence 0.199072 0.192705 5023318.24 5023318.24 runtime variance: within runtime variance (2.44% faster)
paragraph 0.663135 0.653668 1507989.59 1507989.59 faster: 7.62% faster
past_date 0.131348 0.118365 7613374.57 7613374.57 runtime variance: within runtime variance (3.09% faster)
future_date 0.129132 0.117253 7743995.89 7743995.89 runtime variance: within runtime variance (4.81% faster)
recent_date 0.113341 0.104737 8822963.70 8822963.70 runtime variance: within runtime variance (1.69% faster)
credit_card_number 0.177640 0.175482 5629359.59 5629359.59 runtime variance: within runtime variance (2.62% faster)
currency_code 0.014039 0.010965 71228368.83 71228368.83 faster: 19.96% faster
iban 0.137031 0.135002 7297605.47 7297605.47 runtime variance: within runtime variance (2.66% faster)
product_name 0.057787 0.056316 17304975.09 17304975.09 runtime variance: within runtime variance (6.88% faster measured, run ranges overlap)
product_category 0.027240 0.024249 36710180.47 36710180.47 runtime variance: within runtime variance (12.02% faster measured, run ranges overlap)
price 0.088337 0.087505 11320272.00 11320272.00 runtime variance: within runtime variance (2.08% slower)
hex_string 0.136451 0.126213 7328654.23 7328654.23 runtime variance: within runtime variance (2.57% faster)
md5 0.104346 0.098905 9583487.27 9583487.27 runtime variance: within runtime variance (5.14% slower measured, run ranges overlap)
sha1 0.121378 0.114924 8238698.15 8238698.15 runtime variance: within runtime variance (4.97% slower)
sha256 0.163265 0.152586 6125013.36 6125013.36 runtime variance: within runtime variance (6.17% slower measured, run ranges overlap)
file_name 0.119858 0.112140 8343230.49 8343230.49 runtime variance: within runtime variance (2.65% faster)
file_path 0.183815 0.175656 5440255.39 5440255.39 runtime variance: within runtime variance (4.77% faster)
mime_type 0.034284 0.031876 29167912.38 29167912.38 runtime variance: within runtime variance (10.24% faster measured, run ranges overlap)
semver 0.068673 0.062638 14561795.53 14561795.53 runtime variance: within runtime variance (7.06% faster measured, run ranges overlap)
hex_color 0.022318 0.020373 44806380.43 44806380.43 runtime variance: within runtime variance (1.09% faster)
rgb_color 0.126586 0.123269 7899758.39 7899758.39 runtime variance: within runtime variance (1.92% faster)

Full machine-readable and Markdown reports are attached as performance.json and performance.md.