测试环境为macOS12.3,CPU为Apple M1 Pro。
g++-11版本:Homebrew GCC 11.3.0_1
clang++版本:Apple clang version 13.1.6
加法,乘法
| (0) | clang++(ms)[O0/O2] | g++-11(ms)[O0/O2] |
|---|---|---|
| 1e9次加法(不取模) | 943.698/0.002 | 548.563/0.004 |
| 1e9次加法($\mod 998244353~$) | 5535.621/0.004 | 7795.044/0.003 |
| 1e9次乘法(不取模) | 937.686/0.002 | 937.614/0.002 |
| 1e9次乘法($ \mod 998244353$) | 6496.937/0.002 | 8456.852/0.004 |
| __int128 1e9次(1)加法(不取模) | 1258.685/0.003 | 2827.338/0.002 |
| __int128 1e9次(1)乘法(不取模) | 1311.491/0.004 | 4526.648/0.002 |
(0):测试均采用for,如未特殊说明变量均采用long long
(1):范围为[1e20,1e20+1e9]
线段树,树状数组
| (2) | 线段树(ms,Ofast)[clang++/g++-11] | 树状数组(ms,Ofast)[clang++/g++-11] | 比例 |
|---|---|---|---|
| 4e7 单点改 4e7 区间查 | 13966.705/12262.287 | 2552.754/2612.905 | 5.471:1/4.693:1 |
(2):代码均为本人版本
bitset
项目:bitset<1e8> 互相异或5000次
| Test | Time[clang++/g++-11] |
|---|---|
| 1 | 4209.046/7040.604 |
| 2 | 4163.929/7087.2840 |
| 3 | 4163.703/6952.518 |
| 4 | 4166.918/6908.187 |
| 5 | 4180.575/6964.1060 |
| ≈for循环 | 4.45e9/1.785e10 |