Benchmarks for pull requests for speeding up Base64 decoding in Data and NSData.

Tested on an iMac 12,2 mid-2011 with quad Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz running Ubuntu18.04 natively using FoundationBenchmarks package.

Base64Kit is used as control.


Base64Tests.base64DecodeShortSpeedDEVELOPMENT-SNAPSHOT-2020-05-11swift-decode1differenceswift-decode2differenceswift-decode3differenceswift-decode4differenceFirst to Last
NSData-decodeString23027 ms7300 ms-15727 ms-68%5369 ms-1931 ms-26%3344 ms-2025 ms-38%3388 ms44 ms+1%-19639 ms-85%
NSData-decodeString - Ignore Unknown23043 ms7263 ms-15780 ms-68%5365 ms-1898 ms-26%3335 ms-2030 ms-38%3420 ms85 ms+3%-19623 ms-85%
NSData-decodeData29754 ms28521 ms-1233 ms-4%26157 ms-2364 ms-8%3450 ms-22707 ms-87%3467 ms17 ms+0%-26287 ms-88%
NSData-decodeData - Ignore Unknown29707 ms28582 ms-1125 ms-4%26417 ms-2165 ms-8%3374 ms-23043 ms-87%3474 ms100 ms+3%-26233 ms-88%
Data-decodeString23397 ms7867 ms-15530 ms-66%5935 ms-1932 ms-25%3910 ms-2025 ms-34%3328 ms-582 ms-15%-20069 ms-86%
Data-decodeString - Ignore Unknown23415 ms7853 ms-15562 ms-66%5911 ms-1942 ms-25%4039 ms-1872 ms-32%3311 ms-728 ms-18%-20104 ms-86%
Data-decodeData30564 ms29275 ms-1289 ms-4%26730 ms-2545 ms-9%3913 ms-22817 ms-85%3401 ms-512 ms-13%-27163 ms-89%
Data-decodeData - Ignore Unknown30796 ms29232 ms-1564 ms-5%26706 ms-2526 ms-9%3933 ms-22773 ms-85%3344 ms-589 ms-15%-27452 ms-89%
Base64kit3342 ms3123 ms-219 ms-7%3162 ms39 ms+1%3086 ms-76 ms-2%3249 ms163 ms+5%-93 ms-3%
Base64Tests.base64DecodeLongSpeedDEVELOPMENT-SNAPSHOT-2020-05-11swift-decode1differenceswift-decode2differenceswift-decode3differenceswift-decode4differenceFirst to Last
NSData-decodeString56270 ms14175 ms-42095 ms-75%10433 ms-3742 ms-26%5992 ms-4441 ms-43%6127 ms135 ms+2%-50143 ms-89%
NSData-decodeString - Ignore Unknown56259 ms14170 ms-42089 ms-75%10409 ms-3761 ms-27%5984 ms-4425 ms-43%6134 ms150 ms+3%-50125 ms-89%
NSData-decodeData56869 ms59053 ms2184 ms+4%54378 ms-4675 ms-8%5987 ms-48391 ms-89%6131 ms144 ms+2%-50738 ms-89%
NSData-decodeData - Ignore Unknown56750 ms59010 ms2260 ms+4%54399 ms-4611 ms-8%6014 ms-48385 ms-89%6127 ms113 ms+2%-50623 ms-89%
Data-decodeString56458 ms14349 ms-42109 ms-75%10622 ms-3727 ms-26%6209 ms-4413 ms-42%6127 ms-82 ms-1%-50331 ms-89%
Data-decodeString - Ignore Unknown56280 ms14360 ms-41920 ms-74%10601 ms-3759 ms-26%6200 ms-4401 ms-42%6138 ms-62 ms-1%-50142 ms-89%
Data-decodeData56643 ms59159 ms2516 ms+4%54648 ms-4511 ms-8%6189 ms-48459 ms-89%6131 ms-58 ms-1%-50512 ms-89%
Data-decodeData - Ignore Unknown56775 ms59347 ms2572 ms+5%54673 ms-4674 ms-8%6189 ms-48484 ms-89%6133 ms-56 ms-1%-50642 ms-89%
Base64kit6323 ms6478 ms155 ms+2%6050 ms-428 ms-7%6052 ms2 ms+0%6311 ms259 ms+4%-12 ms0%