Have you some experience / link about difference between Python builded with gcc and clang?

Skip Montanaro skip.montanaro at gmail.com
Sun Mar 1 17:48:09 EST 2020


> As title. Currently I'm using gcc 9.2.0 and its compilation seems to
> work well and fast. But I would know by your experience if clang can
> produce, on a *nix system, a "faster Python".

I took a quick run at this as I was wanting to give pyperformance
<https://pyperformance.readthedocs.io/> a try. Comparing GCC 9 with CLANG 8 on
my Ubuntu laptop here's what I got. It seems that GCC was a bit faster than
CLANG pretty much across the board.

+-------------------------+---------+-------------------------------+
| Benchmark               | gcc     | clang                         |
+=========================+=========+===============================+
| 2to3                    | 403 ms  | 440 ms: 1.09x slower (+9%)    |
+-------------------------+---------+-------------------------------+
| chameleon               | 12.6 ms | 13.5 ms: 1.07x slower (+7%)   |
+-------------------------+---------+-------------------------------+
| chaos                   | 148 ms  | 169 ms: 1.14x slower (+14%)   |
+-------------------------+---------+-------------------------------+
| crypto_pyaes            | 145 ms  | 157 ms: 1.08x slower (+8%)    |
+-------------------------+---------+-------------------------------+
| deltablue               | 9.79 ms | 11.4 ms: 1.17x slower (+17%)  |
+-------------------------+---------+-------------------------------+
| django_template         | 69.9 ms | 77.6 ms: 1.11x slower (+11%)  |
+-------------------------+---------+-------------------------------+
| dulwich_log             | 89.3 ms | 92.6 ms: 1.04x slower (+4%)   |
+-------------------------+---------+-------------------------------+
| fannkuch                | 590 ms  | 602 ms: 1.02x slower (+2%)    |
+-------------------------+---------+-------------------------------+
| float                   | 150 ms  | 160 ms: 1.07x slower (+7%)    |
+-------------------------+---------+-------------------------------+
| genshi_text             | 35.9 ms | 39.4 ms: 1.10x slower (+10%)  |
+-------------------------+---------+-------------------------------+
| genshi_xml              | 74.8 ms | 81.8 ms: 1.09x slower (+9%)   |
+-------------------------+---------+-------------------------------+
| go                      | 339 ms  | 390 ms: 1.15x slower (+15%)   |
+-------------------------+---------+-------------------------------+
| hexiom                  | 12.9 ms | 14.3 ms: 1.11x slower (+11%)  |
+-------------------------+---------+-------------------------------+
| json_dumps              | 16.4 ms | 17.6 ms: 1.07x slower (+7%)   |
+-------------------------+---------+-------------------------------+
| json_loads              | 32.9 us | 34.6 us: 1.05x slower (+5%)   |
+-------------------------+---------+-------------------------------+
| logging_format          | 13.9 us | 15.2 us: 1.09x slower (+9%)   |
+-------------------------+---------+-------------------------------+
| logging_silent          | 253 ns  | 298 ns: 1.18x slower (+18%)   |
+-------------------------+---------+-------------------------------+
| logging_simple          | 12.6 us | 14.1 us: 1.12x slower (+12%)  |
+-------------------------+---------+-------------------------------+
| mako                    | 21.8 ms | 24.2 ms: 1.11x slower (+11%)  |
+-------------------------+---------+-------------------------------+
| meteor_contest          | 128 ms  | 133 ms: 1.04x slower (+4%)    |
+-------------------------+---------+-------------------------------+
| nbody                   | 181 ms  | 190 ms: 1.05x slower (+5%)    |
+-------------------------+---------+-------------------------------+
| nqueens                 | 128 ms  | 135 ms: 1.05x slower (+5%)    |
+-------------------------+---------+-------------------------------+
| pathlib                 | 26.3 ms | 27.1 ms: 1.03x slower (+3%)   |
+-------------------------+---------+-------------------------------+
| pickle                  | 13.3 us | 13.5 us: 1.01x slower (+1%)   |
+-------------------------+---------+-------------------------------+
| pickle_dict             | 33.8 us | 33.6 us: 1.01x faster (-1%)   |
+-------------------------+---------+-------------------------------+
| pickle_list             | 4.82 us | 5.18 us: 1.07x slower (+7%)   |
+-------------------------+---------+-------------------------------+
| pickle_pure_python      | 613 us  | 725 us: 1.18x slower (+18%)   |
+-------------------------+---------+-------------------------------+
| pidigits                | 210 ms  | 218 ms: 1.04x slower (+4%)    |
+-------------------------+---------+-------------------------------+
| pyflate                 | 871 ms  | 1.00 sec: 1.15x slower (+15%) |
+-------------------------+---------+-------------------------------+
| python_startup          | 10.3 ms | 10.4 ms: 1.01x slower (+1%)   |
+-------------------------+---------+-------------------------------+
| python_startup_no_site  | 7.16 ms | 7.39 ms: 1.03x slower (+3%)   |
+-------------------------+---------+-------------------------------+
| raytrace                | 686 ms  | 800 ms: 1.17x slower (+17%)   |
+-------------------------+---------+-------------------------------+
| regex_compile           | 223 ms  | 240 ms: 1.07x slower (+7%)    |
+-------------------------+---------+-------------------------------+
| regex_effbot            | 3.70 ms | 3.85 ms: 1.04x slower (+4%)   |
+-------------------------+---------+-------------------------------+
| regex_v8                | 27.9 ms | 28.7 ms: 1.03x slower (+3%)   |
+-------------------------+---------+-------------------------------+
| richards                | 95.4 ms | 114 ms: 1.19x slower (+19%)   |
+-------------------------+---------+-------------------------------+
| scimark_fft             | 470 ms  | 538 ms: 1.14x slower (+14%)   |
+-------------------------+---------+-------------------------------+
| scimark_lu              | 205 ms  | 210 ms: 1.03x slower (+3%)    |
+-------------------------+---------+-------------------------------+
| scimark_monte_carlo     | 138 ms  | 151 ms: 1.09x slower (+9%)    |
+-------------------------+---------+-------------------------------+
| scimark_sor             | 257 ms  | 297 ms: 1.15x slower (+15%)   |
+-------------------------+---------+-------------------------------+
| scimark_sparse_mat_mult | 6.19 ms | 6.24 ms: 1.01x slower (+1%)   |
+-------------------------+---------+-------------------------------+
| spectral_norm           | 177 ms  | 216 ms: 1.22x slower (+22%)   |
+-------------------------+---------+-------------------------------+
| sqlalchemy_declarative  | 199 ms  | 205 ms: 1.03x slower (+3%)    |
+-------------------------+---------+-------------------------------+
| sqlalchemy_imperative   | 39.7 ms | 40.2 ms: 1.01x slower (+1%)   |
+-------------------------+---------+-------------------------------+
| sqlite_synth            | 3.74 us | 3.86 us: 1.03x slower (+3%)   |
+-------------------------+---------+-------------------------------+
| sympy_expand            | 638 ms  | 671 ms: 1.05x slower (+5%)    |
+-------------------------+---------+-------------------------------+
| sympy_integrate         | 30.3 ms | 31.7 ms: 1.05x slower (+5%)   |
+-------------------------+---------+-------------------------------+
| sympy_sum               | 270 ms  | 282 ms: 1.04x slower (+4%)    |
+-------------------------+---------+-------------------------------+
| sympy_str               | 423 ms  | 440 ms: 1.04x slower (+4%)    |
+-------------------------+---------+-------------------------------+
| telco                   | 8.44 ms | 8.35 ms: 1.01x faster (-1%)   |
+-------------------------+---------+-------------------------------+
| tornado_http            | 210 ms  | 221 ms: 1.05x slower (+5%)    |
+-------------------------+---------+-------------------------------+
| unpack_sequence         | 65.1 ns | 60.8 ns: 1.07x faster (-7%)   |
+-------------------------+---------+-------------------------------+
| unpickle                | 17.6 us | 19.0 us: 1.08x slower (+8%)   |
+-------------------------+---------+-------------------------------+
| unpickle_list           | 5.46 us | 5.32 us: 1.03x faster (-3%)   |
+-------------------------+---------+-------------------------------+
| unpickle_pure_python    | 423 us  | 478 us: 1.13x slower (+13%)   |
+-------------------------+---------+-------------------------------+
| xml_etree_parse         | 176 ms  | 191 ms: 1.09x slower (+9%)    |
+-------------------------+---------+-------------------------------+
| xml_etree_iterparse     | 123 ms  | 133 ms: 1.08x slower (+8%)    |
+-------------------------+---------+-------------------------------+
| xml_etree_generate      | 118 ms  | 125 ms: 1.06x slower (+6%)    |
+-------------------------+---------+-------------------------------+
| xml_etree_process       | 95.5 ms | 100 ms: 1.05x slower (+5%)    |
+-------------------------+---------+-------------------------------+

Skip


More information about the Python-list mailing list