A Case of How Open-Source Works at Mobile
Link: Manu Sridharan - Challenges in Large-Scale Mobile App Performance - YouTube
Uber がモバイルの性能頑張ってるよ、という話。Android と iOS でひとつづつトピックを紹介している。
Android 側では nanoscope というプロファイリングを強化した ART のフォークを紹介し、iOS では Swift のコンパイラの最適化を upstream する話をしている。
なんちゅうか、皮肉な話だよなあ。
Android はだいたい全部オープンソースだが、コミュニティドリブンでない。年に一回変更がダンプされてくるだけなので、何かを upstream するのはすごく大変で一部のメーカーくらいしかやってない。iOS は Darwin くらいかオープンソースじゃなかったわけだが、あとから登場した Swift はびっくりするほどオープンにオープンソースしている。
結果として Uber は Android では成果をフォークをして iOS では upstream している。まあ Swift はコンパイラなので OS からは unbundle されている影響もあるかもだが・・・。実際 ART は AOSP をトランクとして作業してるらしいので年に一回ダンプするモデルではないが、まあ最新の Android でだけ修正されてしかも成果は来年までおあづけ、とかだと盛り上がらない。
最近 AndroidX が AOSP ベースになったとアナウンスしていたけれど、どうなるかねえ・・・。
ところで Nanoscape を紹介する記事 Introducing Nanoscope: An Extremely Accurate Method Tracing Tool for Android で彼らが発見したとしている性能上の問題、ぜんぶ userdebug の Systrace みればわかるのだよね。おまえらカーネルいじる前にやることあんぞ。同時に我ながら Systrace おじさんすぎて苦笑。