Closed ewaldhorn closed 1 week ago
Don't know zig. Just installed and ran the command you mention.
Here is what I see.
In my case gcc exe is about twice as fast !!
# gcc
❯ gcc --version
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
❯ gcc -Wall -g -O3 key-gen-face-five.c -o key-gen-face-five-exe
❯ ./key-gen-face-five-exe
bootstrap: keys = 0 1 5
searching keys from k =3
key[3] = 22
run time for key[3] = 0.00 s
run time to key[3] = 0.00 s
key[4] = 94
run time for key[4] = 0.00 s
run time to key[4] = 0.00 s
key[5] = 312
run time for key[5] = 0.00 s
run time to key[5] = 0.00 s
key[6] = 992
run time for key[6] = 0.01 s
run time to key[6] = 0.01 s
key[7] = 2422
run time for key[7] = 0.03 s
run time to key[7] = 0.03 s
key[8] = 5624
run time for key[8] = 0.11 s
run time to key[8] = 0.14 s
key[9] = 12522
run time for key[9] = 0.50 s
run time to key[9] = 0.64 s
key[10] = 19998
run time for key[10] = 0.89 s
run time to key[10] = 1.53 s
done
# zig
❯ zig version
0.13.0
❯ zig cc -Wall -g -O3 key-gen-face-five.c -o key-gen-face-five-exe
❯ ./key-gen-face-five-exe
bootstrap: keys = 0 1 5
searching keys from k =3
key[3] = 22
run time for key[3] = 0.00 s
run time to key[3] = 0.00 s
key[4] = 94
run time for key[4] = 0.00 s
run time to key[4] = 0.00 s
key[5] = 312
run time for key[5] = 0.00 s
run time to key[5] = 0.00 s
key[6] = 992
run time for key[6] = 0.01 s
run time to key[6] = 0.01 s
key[7] = 2422
run time for key[7] = 0.04 s
run time to key[7] = 0.06 s
key[8] = 5624
run time for key[8] = 0.20 s
run time to key[8] = 0.25 s
key[9] = 12522
run time for key[9] = 0.96 s
run time to key[9] = 1.21 s
key[10] = 19998
run time for key[10] = 1.71 s
run time to key[10] = 2.92 s
done
My machine:
❯ neofetch
.-/+oossssoo+/-. olivier@olivier-base
`:+ssssssssssssssssss+:` --------------------
-+ssssssssssssssssssyyssss+- OS: Ubuntu 22.04.5 LTS x86_64
.ossssssssssssssssssdMMMNysssso. Host: NUC10i7FNH M38010-308
/ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 6.8.0-45-generic
+ssssssssshmydMMMMMMMNddddyssssssss+ Uptime: 2 hours, 7 mins
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 2602 (dpkg), 15 (snap)
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: zsh 5.8.1
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Resolution: 3840x2160
ossyNMMMNyMMhsssssssssssssshmmmhssssssso DE: Unity
ossyNMMMNyMMhsssssssssssssshmmmhssssssso WM: Mutter
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ WM Theme: Adwaita
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Theme: Yaru-dark [GTK2/3]
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/ Icons: Yaru [GTK2/3]
+sssssssssdmydMMMMMMMMddddyssssssss+ Terminal: vscode
/ssssssssssshdmNNNNmyNMMMMhssssss/ CPU: Intel i7-10710U (12) @ 4.700GHz
.ossssssssssssssssssdMMMNysssso. GPU: Intel Comet Lake UHD Graphics
-+sssssssssssssssssyyyssss+- Memory: 7088MiB / 31807MiB
`:+ssssssssssssssssss+:`
.-/+oossssoo+/-.
I guess it must be Apple GCC that's making the difference.
gcc --version Apple clang version 15.0.0 (clang-1500.1.0.2.5) Target: x86_64-apple-darwin22.6.0 Thread model: posix
Thank you for checking!
Out of interest, have you by any chance tried the Zig compiler to compile the C code? On my Mac, I get better performance using this than GCC directly. I'd be interested to see if it makes a difference in your environment.
zig cc -Wall -g -O3 key-gen-face-five.c -o key-gen-face-five-exe
is the build command I used with Zig 0.13.0 from https://ziglang.org/.