最近のハイエンドスマートフォンは 6G ~ 8GB もの RAM を搭載しており PC との差がなくなってきました。termux というアプリを使えば Android 上でも開発環境を整えられるとのことなので、コンパイル時間を比べてみました。
Smartphone | SoC | RAM | thread | time1 | time2 |
---|---|---|---|---|---|
Galaxy S6 Edge | Exynos 7420 | 3GB | 8 | 77.8 | 79.8 |
ZenFone AR | Snapdragon 821 | 8GB | 4 | 118.3 | 127.7 |
Nexus 5X | Snapdragon 808 | 2GB | 6 | 195.6 | 181.0 |
Nexus 5 | Snapdragon 800 | 2GB | 4 | 244.1 | 233.0 |
・2回連続で計測しており単位は秒です。time1, time2 の値が小さい方が高速です。
big.LITTLE で 8 core の Galaxy S6 Edge が際立つ結果となっています。4 core PC で 30秒ほどなので十分なな速度と言えそうです。
今回のビルドは RAM 容量よりも Thread 数が有利に働いたようです。Galaxy S6 はビルドに 8 core 全部使われており、LITTLE core も使って並列度を増やした方が速いことが分かります。下記は Galaxy S6 と ZenFone AR でスレッド数を変えて試した結果です。bit.LITTLE を意識して制限するよりも全 core 使った方が高速でした。
↓Galaxy S6 Edge (4+4 big.LITTLE 8 core)
thread数 | time |
---|---|
8 | 76.3 |
6 | 84.8 |
4 | 111.7 |
↓ZenFone AR (2+2 big.LITTLE 4 core)
thread数 | time |
---|---|
5 | 128.9 |
4 | 118.3 |
3 | 142.0 |
2 | 174.0 |
以下はスマートフォン以外のデバイス含めてテストした結果です。
Smartphone (clang-6.0) | SoC | RAM | CPU | core | thread | time1 | time2 |
---|---|---|---|---|---|---|---|
Galaxy S6 Edge | Exynos 7420 | 3GB | A57 2.1 + A53 1.5 | 4+4 | 8 | 77.8 | 79.8 |
ZenFone AR | Snapdragon 821 | 8GB | Kyro 2.3 + Kyro 1.6 | 2+2 | 4 | 118.3 | 127.7 |
Nexus 5X | Snapdragon 808 | 2GB | A57 1.8 + A53 1.4 | 2+4 | 6 | 195.6 | 181.0 |
Nexus 5 | Snapdragon 800 | 2GB | Krait 400 2.2GHz | 4 | 4 | 244.1 | 233.0 |
Tablet (clang-6.0) | SoC | RAM | CPU | core | thread | time1 | time2 |
Tegra Note 7 | Tegra 4 | 1GB | Cortex-A15 1.8GHz | 4 | 4 | 159.7 | 145.4 |
Fire HD 6 | MT8135 | 1GB | A15 1.5 + A7 1.2 | 2+2 | 4 | 203.3 | 202.5 |
Nexus 7 2013 | Snapdragon 8064 | 2GB | Krait 1.5GHz | 4 | 4 | 262.2 | 260.5 |
Nexus 9 | Tegra K1 | 2GB | Denver 2.3GHz | 2 | 2 | 317.7 | 356.8 |
Fonepad 7 ME372CL | Atom Z2560 | 1GB | Saltwell 1.6GHz | 2 | 4 | 686.5 | 682.8 |
MeMO Pad 7 ME176C | Atom Z3745 | 1GB | Silvermont 1.33GHz | 4 | 4 | 294.5 | 291.6 |
TV (clang-6.0) | SoC | RAM | CPU | core | thread | time1 | time2 |
SHIELD TV | Tegra X1 | 3GB | A57 2.0GHz + A53 | 4+4 | 4 | 76.0 | 76.0 |
Nexus Player | Atom Z3560 | 1GB | Silvermont 1.8GHz | 4 | 4 | 339.8 | 334.3 |
Fire TV Stick 2015 | Broadcom 28155 | 0.5GB | Cortex-A9 1.0GHz | 2 | 2 | 596.7 | 569.2 |
SmartWatch (clang-6.0) | SoC | RAM | CPU | core | thread | time1 | time2 |
FossilQ Marshal | Snapdragon 400 | 0.5GB | Cortex-A7 0.8GHz | 4 | 2 | 810.5 | 810.7 |
SBC (clang-3.5) | SoC | RAM | CPU | core | thread | time1 | time2 |
Dragonbaord 410c | Snapdragon 410 | 1GB | Cortex-A53 1.2GHz | 4 | 4 | 117.3 | 118.7 |
Raspberry Pi 3 | BCM2837 | 1GB | Cortex-A53 1.2GHz | 4 | 4 | 175.3 | 159.8 |
Raspberry Pi 2 | BCM2836 | 1GB | Cortex-A7 0.9GHz | 4 | 4 | 337.1 | 301.2 |
Chromebook (clang-6.0) | SoC | RAM | CPU | core | thread | time1 | time2 |
Chromebook Flip C101PA | RK3399 | 4GB | A72 1.8 + A53 | 2+4 | 6 | 106.0 | 105.1 |
Chromebook C720 | Haswell | 4GB | Celeron 2955U 1.4GHz | 2 | 2 | 220.7 | 219.3 |
PC (clang-3.8) | SoC | RAM | CPU | core | thread | time1 | time2 |
X370GTN (W10+WSL) | Ryzen 7 1800X | 32GB | Zen 3.7GHz | 8 | 16 | 25.4 | 22.2 |
H97I-PLUS (W10+WSL) | Core i7-4770 | 16GB | Haswell 3.4GHz | 4 | 8 | 28.7 | 28.2 |
A88M-ITX (W10+WSL) | A10-7870K | 8GB | Steamroller 3.9GHz | 4 | 4 | 65.9 | 61.6 |
MacBook Pro | Core i5-3210M | |
Ivy Birdge 2.5GHz | 2 | 4 | 83.7 | 90.8 |
Q1900B-ITX (16.04LTS) | Celeron J1900 | 8GB | Silvermont 2.0GHz | 4 | 4 | 112.2 | 108.8 |
・Chromebook は termux ではなく Crouton + Ubuntu を使用しています。
スマートフォンやタブレットは計測時のばらつきが結構あります。2回目以降の方が遅くなるケースも多く、形状が小さいデバイスほど発熱の影響を多く受けているものと思われます。
ARM で一番速かったのは Tegra X1 の SHIELD TV です。こちらは他の ARM デバイスと違い内蔵ファンによる熱対策が行われています。
キーボードがつながらないので実用性はほぼ無いものの Wear OS (Android Wear) の Smartwatch でも動きました。
関連エントリ
・AMD CPU Ryzen とコンパイル時間の比較 (2)
・AMD CPU Ryzen とコンパイル時間の比較
・ARM Cortex-A53 の浮動小数点演算速度とコンパイル時間の比較
・2955U vs N3150/J1900/Athlon5350 (コンパイル時間の比較)
・Raspberry Pi 2 で速くなったコンパイル時間の比較
・BayTrail vs Kabini (Celeron J1900 vs Athlon 5350)
・コンパイル時間の比較 BayTrail
・Atom vs Core i7