実際の開発におけるAppleM1ベンチマーク





AppleM1ベンチマークの結果に非常に感銘を受けました。これは、Webブラウジング、x86アプリケーションの操作、開発者ツールなどの重要な日常業務において、非常に高速で強力なチップです。はい、エコシステムはまだ開発が進んでおらず、時間がかかる場合がありますが、M1の驚異的なパフォーマンスを考えると、この作業は価値があります。



M1は非常に高速で、多くのベンチマークがその有効性を証明しています。しかし、プログラミング言語のパフォーマンスを知りたいと思いました。そこで、最も一般的な開発ワークロードでチップをテストすることにしました。



一部のテストスイートはメモリを大量に消費し、その他はCPUパフォーマンスに依存し、一部のタスクは、マルチスレッドの使用のオーバーヘッドまたは複雑さのためにマルチコア処理の恩恵を受けないことに注意してください。これは、M1がさらに少ないコアでデスクトップRyzenよりも優れたパフォーマンスを発揮できることを意味します。 最も重要なことは、合成生産テストではなく、実際の開発問題のテストに焦点を合わせたことです。



ここで生データをベンチマークし ます



注:3900Xコア数は、実稼働で実際のパフォーマンスを示さないベンチマークには役に立ちません。しかし、開発者自身がほとんどの場合ラップトップやデスクトップなどで作業するため、このようなテストは理にかなっています。もちろん、Ryzen 3900Xは、主に並列処理により、M1やIntelよりも本番環境ではるかに優れたパフォーマンスを発揮します。



テスト環境



  • Apple M1:Mac Mini(16 GB RAM)、MacBook Air(8 GB RAM)/ macOS Big Sur 11.0.1(すべてのベンチマークバイナリはAppleチップ用にネイティブにコンパイルされています)。

  • Ryzen 3900X: ASRock Rack X570D4I-2T / 16GB DDR4-3200 × 2 / Ubuntu 20.04.1 LTS ( ) — , 3900X Ryzen 5000: . , .

  • Intel i7-9750H: MacBook Pro 16" / 16  / macOS Big Sur 11.0.1

  • Intel i9-9880H: MacBook Pro 16" / 32  / macOS Big Sur 11.0.1


Java Renaissance



Less is Better







Renaissanceは、JITコンパイラ、ガベージコレクタ、プロファイラ、アナライザ、およびその他のツールのテストを目的とした、最新のオープンで多様なJVMテストスイートです。



JVMは大量のメモリを必要とし、メモリはJavaアプリケーションの主なボトルネックの1つであるため、AppleM1のパフォーマンスはRyzen3900Xと比較して驚異的です。



Java SciMark 2.0(NIST)



より優れている







SciMark 2.0は、科学的、数値計算のためのJavaベンチマークです。複数のコアのパフォーマンスを測定し、 概算メガフロップ(1秒あたり数百万の浮動小数点演算)で要約推定値を報告します。



Java DaCapo











DaCapoテストスイートは、小さいほど優れたもの であり、実際のアプリケーションのセットで構成されています。



Python PyPerformance



以下は優れている











ザ・PyPerformanceプロジェクトは全てのPython実装のための正式なベンチマーク源として役立つはずです。焦点は、合成ベンチマークではなく、実際のベンチマークにあります。可能な場合は、完全なアプリケーションが使用されます。



移動(golang.org/x/benchmarks)



以下がより良いのである







。このベンチマークでは、Goはすべてのコアを使用することに注意してください。



Go(golang-benchmarks



(測定単位:操作あたりのナノ秒、少ないほど良い)



Apple M1(Mac Mini) Apple M1(MacBook Air) ライゼン3900X Intel i7-9750H
BenchmarkBase64decode-24 68,65 69,77 137,1 103
BenchmarkBase64regex-24 12001 12001 32803 18255
BenchmarkNumberRegEx-24 7759 7931 23379 12206
BenchmarkFulltextRegEx-24 6388 6388 18627 10014
BenchmarkNumberParse-24 48,69 50,19 66,83 58
BenchmarkFulltextParse-24 726,3 726,3 933,2 839
BenchmarkConcatString-24 21949 22810 65498 43343
BenchmarkConcatBuffer-24 4,338 4,648 6,258 6,24
BenchmarkConcatBuilder-24 2,37 3,1 2,934 3,02
BenchmarkContains-24 5,007 5,204 7,467 7,94
BenchmarkContainsNot-24 6,322 6,322 7,693 8,9
BenchmarkContainsBytes-24 5,33 5,511 7,5 8,49
BenchmarkContainsBytesNot-24 6,57 6,773 9,188 10,3
BenchmarkCompileMatch-24 70,66 75,09 110,1 83
BenchmarkCompileMatchNot-24 31,65 32,08 62,42 42,1
BenchmarkMatch-24 800,2 804,6 2376 1313
BenchmarkMatchNot-24 758,1 779,3 2311 1262
BenchmarkForMap-24 18,89 18,92 20,37 20,6
BenchmarkRangeMap-24 47,66 48,59 53,25 56,7
BenchmarkRangeSlice-24 3,446 3,47 2,022 3,4
BenchmarkRangeSliceKey-24 4,072 4,121 2,906 3,15
BenchmarkAdler32-24 699 719,4 644,4 700
BenchmarkBlake2b256-24 2340 2415 2026 1932
BenchmarkBlake2b512-24 2343 2400 1985 1945
BenchmarkBlake3256-24 5753 5854 2489 2634
BenchmarkMMH3-24 374,3 383,2 294 377
BenchmarkCRC32-24 255,5 260,4 152,9 122
BenchmarkFnv128-24 4468 4502 5540 4210
BenchmarkMD5-24 3193 3211 2464 2534
BenchmarkSHA1-24 900,4 910,9 1898 1961
BenchmarkSHA256-24 913,5 927,6 4016 4525
BenchmarkSHA512-24 6999 7033 2883 3249
BenchmarkSHA3256-24 4213 4231 5957 5878
BenchmarkSHA3512-24 7329 7429 10233 10394
BenchmarkWhirlpool-24 32042 32624 35714 39205
BenchmarkMapStringKeys-24 68,14 70,66 87,62 100
BenchmarkMapIntKeys-24 43,6 48,49 42,51 60
BenchmarkJsonMarshal-24 1240 1261 2258 1720
BenchmarkJsonUnmarshal-24 4969 5102 9597 6484
BenchmarkMathInt8-24 0,3128 0,3235 0,2298 0,24
BenchmarkMathInt32-24 0,3145 0,3166 0,2324 0,239
BenchmarkMathInt64-24 0,3131 0,3158 0,2367 0,237
BenchmarkMathAtomicInt32-24 6,9 6,965 4,02 4,33
BenchmarkMathAtomicInt64-24 6,898 7.051 4,044 4.27
BenchmarkMathMutexInt-24 13.51 13.63 8.118 12.1
BenchmarkMathFloat32-24 0.3142 0.3142 0.3142 0.241
BenchmarkMathFloat64-24 0.313 0.313 0.313 0.239
BenchmarkParseBool-24 1,427 1.43 0.2252 0.308
BenchmarkParseInt-24 10.97 11.15 11.84 13.5
BenchmarkParseFloat-24 64.52 65.74 90.89 87
BenchmarkMathRand-24 13.55 13.55 17.27 21.5
BenchmarkCryptoRand-24 106.6 112 1311 145
BenchmarkCryptoRandString-24 107.6 110.7 222 138
BenchmarkMatchString-24 4957 5148 13869 7616
BenchmarkMatchStringCompiled-24 475.5 496.2 499.2 464
BenchmarkMatchStringGolibs-24 479.3 496.3 491.3 480


SQLiteベンチ



少ないほど良い











Redis



大きければ大きいほど良い







JavaScript Webツールベンチマーク(v8)



Bigger is Better







V8 Web Tooling Benchmarkは、BabelやTypeScriptなどの一般的なツールのコアワークロードなど、Web開発のJavaScriptワークロードを測定するための一連のベンチマークです。目標は、I / Oやその他の無関係な側面ではなく、JavaScriptのパフォーマンス(JavaScriptエンジンの影響を受ける)を具体的に測定することです。



このスイートのテストの詳細については、こちらを参照して ください



JavaScript Octane 2.0



大きければ大きいほど良い











Webpackビルド



以下は、より良いです



:ターゲットのビルドプロジェクト antd管理者







結論



AppleM1チップのパフォーマンスは非常に印象的です。実際のタスクでは、現在のx86よりもパフォーマンスが向上します。



All Articles