月別アーカイブ: 2018年12月

ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd

スマートフォンの性能が上がっています。Snapdragon 845 搭載の Pixel 3 を手に入れたので、開発環境としてどのくらい使えるか再び試してみました。(前回の記事はこちらです)

また Android 上で一般アプリとして実行可能な Linux 環境 UserLAnd がリリースされているので、Termux と合わせてテストしました。どちらも root 不要です。

● 今回の結果 (Android + Termux)

Device SoC/CPU RAM Thread time 速度比
Pixel 3 Snapdragon 845 4GB 8/8 32 4.2x
Galaxy S6 Edge Exynos 7420 3GB 8/8 77 1.8x
ZenFone AR Snapdragon 821 8GB 4/4 111 1.2x
Nexus 5X Snapdragon 808 2GB 6/6 135 1.0x

・time = コンパイル時間。単位は秒。この値が小さい方が速い。

Cortex-A75 ベースとなった Snapdragon 845 は非常に速く、Desktop PC と比べても遜色ない速度でコンパイルが完了しています。普通に開発環境として使いたいレベル。

下記はスマートフォン以外のデバイスを含めた比較です。

Device SoC/CPU RAM Thread time
Desktop W10+VMware Ryzen 7 1800X 32GB 16/8 24
Desktop W10+VMware Core i7-6700K 32GB 8/4 29
Pixel 3 Snapdragon 845 4GB 8/8 32
MacMini 2012 Core i7-3615QM 16GB 8/4 43
Galaxy S6 Edge Exynos 7420 3GB 8/8 77
Desktop Linux A10-7870K 8GB 4/2 82
Chromebook C101PA RK3399 4GB 6/6 87
MacBook Pro 2013 Core i5-3210M 8GB 4/2 97
Desktop Linux Celeron J1900 8GB 4/4 108
ZenFone AR Snapdragon 821 8GB 4/4 111
Nexus 5X Snapdragon 808 2GB 6/6 135
Tegra Note 7 Tegra 4 1GB 4/4 148
Note W10+WSL Atom x7-Z8700 4GB 4/4 200
Chromebook C720 Celeron 2955U 4GB 2/2 222
Nexus 9 Tegra K1 2GB 2/2 272
Nexus 7 2013 Snapdragon S4 Pro 2GB 4/4 275
MeMO Pad 7 ME176C Atom Z3745 1GB 4/4 312

・W10 + VMware = VMware Workstation 15 Player + Ubuntu 18.04
・W10 + WLS = Windows Subsystem for Linux + Ubuntu 18.04

前回同様 C++ ライブラリの Build を行っています。Build Target は Linux 向けで統一。実行はコマンドラインから行い、それぞれ 2回連続で走らせたうち速い方を採用しています。

Chromebook C720 は crouton + Ubuntu 18.04 です。Chromebook Flip C101PA は Android の Termux ではなく ChromeOS 公式の Linux 機能 (Debian stretch) を使用しています。

Windows PC の場合は WSL (Windows Subsystem for Linux) や VMware Workstation Player を利用しているので、若干オーバーヘッドがある点に注意してください。

どの程度オーバーヘッドがあるのか、WSL と VMware を比較してみた結果は下記のとおりです。直接 Linux を install するよりも効率は落ちており、また VirtualMachine 系よりも WSL の方が遅くなっていることがわかります。いずれも Windows 10 1809 と Ubuntu18.04。

Device CPU RAM Thread time
Desktop W10+VMware Ryzen 7 1800X 32GB 16/8 24
Desktop W10+WSL Ryzen 7 1800X 32GB 16/8 27
Desktop W10+VMware Core i7-6700K 32GB 8/4 29
Desktop W10+WSL Core i7-6700K 32GB 8/4 39
Desktop Linux (Native) A10-7870K 8GB 4/2 82
Desktop W10+VMWare A10-7870K 8GB 4/2 86
Desktop W10+WSL A10-7870K 8GB 4/2 104
MacBook Pro Palallels Core i5-3210M 8GB 4/2 154
MacBook Pro W10+VMWare Core i5-3210M 8GB 4/2 159
MacBook Pro W10+WSL Core i5-3210M 8GB 4/2 189

Termux は利用できるパッケージに制限がありましたが、UserLAnd はほぼそのまま一般の Linux Distribution が利用できるようです。下記は Termux と UserLAnd + Ubuntu の速度比較です。

Device (Termux) CPU RAM Thread time
Pixel 3 Snapdragon 845 4GB 8/8 32
Galaxy S6 Edge Exynos 7420 3GB 8/8 77
ZenFone AR Snapdragon 821 8GB 4/4 111
Nexus 5X Snapdragon 808 2GB 6/6 135
Device (UserLAnd) CPU RAM Thread time
Pixel 3 Snapdragon 845 4GB 8/8 78
ZenFone AR Snapdragon 821 8GB 4/4 221
Nexus 5X Snapdragon 808 2GB 6/6 361

・UserLAnd = Ubuntu (18.04) + SSH

残念ながらビルド時間は UserLAnd の方が倍以上遅くなっています。ファイルシステムの違いが原因と思われますが、それでも Pixel 3 の速度は十分使える範囲です。

なお UserLAnd の場合、古いデバイスではカーネルの違いか正しく動かないものがありました。Pixel3, ZenFone AR, Nexus 5X で動作したものの、それ以外の Android 端末では使えませんでした。

Pixel 3 は手持ちの古い Note PC よりも快適そうなので、持ち歩ける PC としてまじめに使ってみたいと思います。

↓ Android Pie の画面分割機能を使った画面です。左側が UserLAnd (SSH) で右が Termux。普通に日本語環境の構築もできます。Ubuntu 以外にも Arch, Debian, Kali Linux が利用可能。VNC で GUI も使えるようです。

null

null

関連エントリ
ARM CPU 上の開発環境とコンパイル時間の比較
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

2年間使った Apple Watch Series 2

Apple Watch S2 42mm を使って 2年 (と数ヶ月) 経ちました。watchOS も 5 になり当初から 2つ上がっています。今のところ一番利用している機能は Suica です。バッテリーは 2日に一度の充電ペースでしたが、最近充電頻度があがりました。

● バッテリーの持ち

バッテリーは使い方にもよりますが 42mm モデルの Watch OS 4 時でだいたい 3日使えます。3日といっても 24 x 3 = 72 時間フルに持続するわけではなく、朝充電器から外すと 3日目家に帰るまで持つ感覚です。およそ 12 x 5 の 60時間前後でしょうか。当初の 2年間は、2日に一度の充電ペースでも余裕を持って運用できていました。

ところがこの数ヶ月、秋に Watch OS 5 に更新したあたりから充電ペースが上がっています。2日目の余裕がほとんど無いので毎日充電するようになりました。Watch OS 5 で消費電力が増えたのか、もしくはバッテリーが劣化したせいかもしれません。

● Apple Pay の Suica と改札

1日に 8回改札を通過しており買い物にも利用しています。今では外出に欠かせない物となってますが、使い始めた当初は慣れずに自動改札で引っかかることが多々ありました。

(1) IC カードと比べて若干認識速度が遅い
(2) 手首でのタッチは指先でカードを持つよりも距離が遠い
(3) 認識結果のアラームが鳴るタイミングが不定
(4) いつの間にか自動ロックがかかっている事がある

(1)~(3) は比較的すぐ慣れましたが (4) は未だにあります。

Apple Pay 利用時はセキュリティのためパスコードによるロックが必須となっています。といっても身につけている間は常にロックが解除されており不便はありません。センサーが常時腕を認識しており、腕から外すと自動的にロックがかかる仕組みです。

非常に良くできているのですが、ベルトを緩めにしているせいか気が付かないうちにロックされていて、稀に改札で締め出しをくらうことがあります。袖口が時計と腕の隙間に入り込むのかもしれません。

● Suica の残高表示のずれ

watch OS 3~4 の頃、Suica の残高表示が正しく反映されない (変わらない) ことがありました。見た目だけの問題で、支払いは自体は正しく行われているため実害はありません。他にも通知に表示される支払い金額がつねに 1つ前のものだったり、改札の内外通知が逆転したこともあります。

どうやら Apple Watch 側の再起動で直るようです。watchOS 5 ではまだこの症状に遭遇していないので改善しているのかもしれません。

● スマートウォッチの操作

通知など情報を受けるには便利なスマートウォッチですが、操作面では少々難があります。小さいタッチ画面もそうですし、操作には両腕が必要です。荷物やつり革で片手が埋まっている場合は、片手でも操作できるスマートフォンを取り出した方が早いことになります。タイマーのように簡単なものは Siri によるボイスコマンドを利用するようになりました。

● ワークアウトの自動判定

watchOS 5 からワークアウトの自動判定ができるようになりました。ある一定時間負荷が持続すると通知が来るので、応えると時間を遡ってワークアウト期間とみなしてくれます。非常に便利なのですが、もしかしたら watchOS 5 で消費電力が増えた原因の一つかもしれません。自動判定の通知自体は設定で Off にすることができます。

設定→一般→ワークアウト→ワークアウトの開始を通知

関連エントリ
Apple Watch S2 の CPU と浮動小数点演算
Apple Pay を iPhone SE + Apple Watch S2 で使ってみた (2)
Apple Pay を iPhone SE + Apple Watch S2 で使ってみた
Apple Watch の CPU の種類と浮動小数点演算速度