如何解决Intel 二进制文件在 M1 MacBook 上是否比 arm64 二进制文件运行得更快?
我在我的 M1 Macbook 上做了一个小基准测试,得到了一个奇怪的结果。 Intel 二进制文件比 arm64 二进制文件运行得更快。我的实验有什么问题?
$ arch
arm64
$ make
arch -x86_64 cc fib.c -o x86.out
arch -arm64 cc fib.c -o arm64.out
file *.out
arm64.out: Mach-O 64-bit executable arm64
x86.out: Mach-O 64-bit executable x86_64
time ./x86.out
Fibonacci 45 is 1134903170
8.32 real 7.54 user 0.01 sys
time ./arm64.out
Fibonacci 45 is 1134903170
10.21 real 9.77 user 0.01 sys
$ cat fib.c
#include <stdio.h>
int fibonacci(int n);
int main() {
int n = 45;
// Print out number of characters in n
printf("Fibonacci %i is %i\n",n,fibonacci(n));
return 0;
}
int fibonacci(int n) {
if (n == 0 || n == 1) {
return n;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
根据评论,我已启用 -O3
,但 Intel bin 的运行速度仍然稍快一些。
$ make
arch -x86_64 cc fib.c -o x86.out -O3
arch -arm64 cc fib.c -o arm64.out -O3
file *.out
arm64.out: Mach-O 64-bit executable arm64
x86.out: Mach-O 64-bit executable x86_64
time ./x86.out
Fibonacci 45 is 1134903170
3.46 real 3.33 user 0.00 sys
time ./arm64.out
Fibonacci 45 is 1134903170
3.57 real 3.45 user 0.00 sys
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。