@@ -87,66 +87,67 @@ Benchmark
8787
8888.. begin benchmark
8989
90- Running Python 3.15.0a8 , Apple clang version 21.0.0 (clang-2100.0.123.102 ), macOS 26.3.1 , Apple M1 Max
90+ Running Python 3.15.0b3 , Apple clang version 21.0.0 (clang-2100.1.1.101 ), macOS 26.5.2 , Apple M1 Max
9191
9292.. code ::
9393
9494 pybase64 1.5.0 (C extension active - NEON)
9595 bench: altchars=None, validate=True, padded=True
96- pybase64.encodebytes: 5129 MB/s (135,696 bytes -> 183,309 bytes)
97- pybase64.b64encode: 16339 MB/s (135,696 bytes -> 180,928 bytes)
98- pybase64.b64decode: 8821 MB/s (180,928 bytes -> 135,696 bytes)
99- base64.encodebytes: 2339 MB/s (135,696 bytes -> 183,309 bytes)
100- base64.b64encode: 2642 MB/s (135,696 bytes -> 180,928 bytes)
101- base64.b64decode: 2613 MB/s (180,928 bytes -> 135,696 bytes)
96+ pybase64.encodebytes: 6518 MB/s (135,696 bytes -> 183,309 bytes)
97+ pybase64.b64encode: 17518 MB/s (135,696 bytes -> 180,928 bytes)
98+ pybase64.b64decode: 9016 MB/s (180,928 bytes -> 135,696 bytes)
99+ base64.encodebytes: 2372 MB/s (135,696 bytes -> 183,309 bytes)
100+ base64.b64encode: 2662 MB/s (135,696 bytes -> 180,928 bytes)
101+ base64.b64decode: 2635 MB/s (180,928 bytes -> 135,696 bytes)
102102 bench: altchars=None, validate=True, padded=False
103- pybase64.b64encode: 16369 MB/s (135,696 bytes -> 180,928 bytes)
104- pybase64.b64decode: 2480 MB/s (180,928 bytes -> 135,696 bytes)
105- base64.b64encode: 2573 MB/s (135,696 bytes -> 180,928 bytes)
106- base64.b64decode: 2583 MB/s (180,928 bytes -> 135,696 bytes)
103+ pybase64.b64encode: 17528 MB/s (135,696 bytes -> 180,928 bytes)
104+ pybase64.b64decode: 8984 MB/s (180,928 bytes -> 135,696 bytes)
105+ base64.b64encode: 2639 MB/s (135,696 bytes -> 180,928 bytes)
106+ base64.b64decode: 2646 MB/s (180,928 bytes -> 135,696 bytes)
107107 bench: altchars=None, ignorechars=b'', padded=False
108- pybase64.b64decode: 2478 MB/s (180,928 bytes -> 135,696 bytes)
109- base64.b64decode: 2610 MB/s (180,928 bytes -> 135,696 bytes)
108+ pybase64.b64decode: 8975 MB/s (180,928 bytes -> 135,696 bytes)
109+ base64.b64decode: 2619 MB/s (180,928 bytes -> 135,696 bytes)
110110 bench: altchars=None, ignorechars=b'\n', padded=True
111- pybase64.b64decode: 2338 MB/s (183,308 bytes -> 135,696 bytes)
112- base64.b64decode: 2083 MB/s (183,308 bytes -> 135,696 bytes)
111+ pybase64.b64decode: 2357 MB/s (183,308 bytes -> 135,696 bytes)
112+ base64.b64decode: 2073 MB/s (183,308 bytes -> 135,696 bytes)
113113 bench: altchars=None, ignorechars=b'\n', padded=False
114- pybase64.b64decode: 2337 MB/s (183,308 bytes -> 135,696 bytes)
115- base64.b64decode: 2013 MB/s (183,308 bytes -> 135,696 bytes)
114+ pybase64.b64decode: 2357 MB/s (183,308 bytes -> 135,696 bytes)
115+ base64.b64decode: 1932 MB/s (183,308 bytes -> 135,696 bytes)
116116 bench: altchars=None, validate=False, padded=True
117- pybase64.b64decode: 2356 MB/s (183,308 bytes -> 135,696 bytes)
118- base64.b64decode: 2156 MB/s (183,308 bytes -> 135,696 bytes)
117+ pybase64.b64decode: 2360 MB/s (183,308 bytes -> 135,696 bytes)
118+ base64.b64decode: 2021 MB/s (183,308 bytes -> 135,696 bytes)
119119 bench: altchars=None, validate=False, padded=False
120- pybase64.b64decode: 2332 MB/s (183,308 bytes -> 135,696 bytes)
121- base64.b64decode: 2079 MB/s (183,308 bytes -> 135,696 bytes)
120+ pybase64.b64decode: 2359 MB/s (183,308 bytes -> 135,696 bytes)
121+ base64.b64decode: 1976 MB/s (183,308 bytes -> 135,696 bytes)
122122 bench: altchars=b'-_', validate=True, padded=True
123- pybase64.b64encode: 10328 MB/s (135,696 bytes -> 180,928 bytes)
124- pybase64.b64decode: 5861 MB/s (180,928 bytes -> 135,696 bytes)
125- base64.b64encode: 2617 MB/s (135,696 bytes -> 180,928 bytes)
126- base64.b64decode: 1183 MB/s (180,928 bytes -> 135,696 bytes)
123+ pybase64.b64encode: 10733 MB/s (135,696 bytes -> 180,928 bytes)
124+ pybase64.b64decode: 5968 MB/s (180,928 bytes -> 135,696 bytes)
125+ base64.b64encode: 2653 MB/s (135,696 bytes -> 180,928 bytes)
126+ base64.b64decode: 1194 MB/s (180,928 bytes -> 135,696 bytes)
127127 bench: altchars=b'-_', validate=True, padded=False
128- pybase64.b64encode: 10344 MB/s (135,696 bytes -> 180,928 bytes)
129- pybase64.b64decode: 2163 MB/s (180,928 bytes -> 135,696 bytes)
130- base64.b64encode: 2625 MB/s (135,696 bytes -> 180,928 bytes)
131- base64.b64decode: 1164 MB/s (180,928 bytes -> 135,696 bytes)
128+ pybase64.b64encode: 10714 MB/s (135,696 bytes -> 180,928 bytes)
129+ pybase64.b64decode: 5941 MB/s (180,928 bytes -> 135,696 bytes)
130+ base64.b64encode: 2618 MB/s (135,696 bytes -> 180,928 bytes)
131+ base64.b64decode: 1161 MB/s (180,928 bytes -> 135,696 bytes)
132132 bench: altchars=b'-_', ignorechars=b'', padded=True
133- pybase64.b64decode: 5815 MB/s (180,928 bytes -> 135,696 bytes)
134- base64.b64decode: 2598 MB/s (180,928 bytes -> 135,696 bytes)
133+ pybase64.b64decode: 5839 MB/s (180,928 bytes -> 135,696 bytes)
134+ base64.b64decode: 2590 MB/s (180,928 bytes -> 135,696 bytes)
135135 bench: altchars=b'-_', ignorechars=b'', padded=False
136- pybase64.b64decode: 2146 MB/s (180,928 bytes -> 135,696 bytes)
137- base64.b64decode: 2586 MB/s (180,928 bytes -> 135,696 bytes)
136+ pybase64.b64decode: 5807 MB/s (180,928 bytes -> 135,696 bytes)
137+ base64.b64decode: 2588 MB/s (180,928 bytes -> 135,696 bytes)
138138 bench: altchars=b'-_', ignorechars=b'\n', padded=True
139- pybase64.b64decode: 2042 MB/s (183,308 bytes -> 135,696 bytes)
140- base64.b64decode: 2056 MB/s (183,308 bytes -> 135,696 bytes)
139+ pybase64.b64decode: 2044 MB/s (183,308 bytes -> 135,696 bytes)
140+ base64.b64decode: 2044 MB/s (183,308 bytes -> 135,696 bytes)
141141 bench: altchars=b'-_', ignorechars=b'\n', padded=False
142- pybase64.b64decode: 2034 MB/s (183,308 bytes -> 135,696 bytes)
143- base64.b64decode: 1952 MB/s (183,308 bytes -> 135,696 bytes)
142+ pybase64.b64decode: 1978 MB/s (183,308 bytes -> 135,696 bytes)
143+ base64.b64decode: 1872 MB/s (183,308 bytes -> 135,696 bytes)
144144 bench: altchars=b'-_', validate=False, padded=True
145- pybase64.b64decode: 2021 MB/s (183,308 bytes -> 135,696 bytes)
146- base64.b64decode: 1063 MB/s (183,308 bytes -> 135,696 bytes)
145+ pybase64.b64decode: 2013 MB/s (183,308 bytes -> 135,696 bytes)
146+ base64.b64decode: 1014 MB/s (183,308 bytes -> 135,696 bytes)
147147 bench: altchars=b'-_', validate=False, padded=False
148- pybase64.b64decode: 2014 MB/s (183,308 bytes -> 135,696 bytes)
149- base64.b64decode: 1042 MB/s (183,308 bytes -> 135,696 bytes)
148+ pybase64.b64decode: 2025 MB/s (183,308 bytes -> 135,696 bytes)
149+ base64.b64decode: 1000 MB/s (183,308 bytes -> 135,696 bytes)
150+
150151
151152.. end benchmark
152153
0 commit comments