最近海鲜市场入的 2020 M1 ,12 月激活的
这两天在看关于 webassembly 的内容的时候,up 主认为 web assembly 的性能在计算密集型任务上是有优势的(实际上是这样),再加上之前想去了解一下 Blazor ,所以在测试 blazor 的时候就发现了以下现象:
同样的递归计算斐波那契数列 40 层 blazor:1192ms
然后发现不对劲,我在 win 上随便打开一个浏览器直接用 js 执行是 1278ms +-50 ,windows 中使用.net 甚至更短,只需要 1049ms...而且还是 i3
代码很简单,基本都是一个 fib 方法 int fib(int n) { return n < 2? n : fib(n-1) + fib(n-2);} 然后直接调用 fib(40); 计算一下前后时间差
于是又测试了其他的语言: c:908ms gcc (Apple clang version 14.0.0 (clang-1400.0.29.202))
java:421ms(???java 最快我是没想到的) openjdk version "17.0.6" 2023-01-17
dotnet :1632ms .netsdk version : 7.0.102
原生 js: 1523ms
所以到底是我的电脑的问题还是?
1
Ga2en 2023-02-18 22:43:27 +08:00
建议对比下你购入的价格和同期的同价位电脑性能。
|
2
letsgotobyebye OP @Ga2en #1 用了这么多时间,可以肯定不是假货,只是想知道其他人是不是也是这样,因为 M1 在用之前经常看到吹性能的,但是自己实测发现好像并没有那么强
|
3
wuqiangroy 2023-02-18 23:20:13 +08:00
m1 用 golang 跑了一下:
go run fib.go 102334155 used time: 218.433792ms 代码: fib.go ```golang package main import ( "fmt" "time" ) func fib(a int) int { if a <= 2 { return 1 } return fib(a-1) + fib(a-2) } func main() { t := time.Now() fmt.Println(fib(40)) fmt.Printf("used time: %s\n", time.Now().Sub(t)) } ``` |
4
tcpdump 2023-02-18 23:21:43 +08:00
M 系列主要是续航和剪辑
|
5
my3157 2023-02-19 00:04:35 +08:00
CPU 怎么作假
M 系列对比下来性能提升还是比较明显的, 下述是一个基于 BitMap 的 SDS 存储空间分配器的 benchmark 数据 MBP 2017 i7 7820HQ 16/512G: action: alloc, capacity: 3906250000, spend: 186 s, latency: 47 ns MBP 2023 M2 Max 64G/1T action: alloc, capacity: 3906250000, spend: 54 s, latency: 13 ns |
6
MrKrabs 2023-02-19 00:05:17 +08:00
swift
time ./fib 102334155 ________________________________________________________ Executed in 348.64 millis fish external usr time 344.09 millis 0.07 millis 344.02 millis sys time 4.04 millis 1.05 millis 2.98 millis func fib(_ n: Int) -> Int { n < 2 ? n : fib(n-1) &+ fib(n-2) } print(fib(40)) |
7
my3157 2023-02-19 00:06:45 +08:00
|
8
LUO12826 2023-02-19 00:12:30 +08:00 1
你这个任务太简单,用不上 M1 的乱序执行性能。M1 之所以能靠 3.2G 的主频打那些 4-5G 主频的 CPU ,很大程度是因为强大的乱序执行。如果一个任务太简单,或者指令间高度依赖,这时候反而是主频高的处理器有优势。 可以看看这个视频 &ab_channel=AlexZiskind
|
9
LUO12826 2023-02-19 00:13:23 +08:00
另外,编程语言间比性能,开的优化级别很重要。
|
10
letsgotobyebye OP @my3157 #5 作假是开玩笑的,只是觉得太慢,有点出乎意料
|
11
letsgotobyebye OP @LUO12826 #8 原来是这样,谢谢
|
12
lscho 2023-02-19 10:59:45 +08:00
你把 m1 也当成 i3 就理解了,还是移动端 i3
个人理解的产品线就是 m1=移动端 i3 m1pro=移动端 i5. m1max=移动端 i7 m1u=移动端 i9 大家觉得 m1 强是当初预期比较低,用 arm 打赢了同水平的 x86 ,但不代表它能越级打桌面级 x86 。 |
13
imaning 2023-02-19 17:57:03 +08:00
另外个优势就是续航太能刚!
|
14
maggch97 2023-02-19 19:00:37 +08:00 via Android
看一下 geekbench 分数就知道了
|
15
Vipcw95 2023-02-20 13:59:02 +08:00
m1 不是因为能耗比强吗,性能绝对值也不是特别拉
|