Facebookは抽象解釈でAndroidを並列化した。その仕組みを解説する。
Facebookがどのように抽象解釈と意図的なunsoundnessを用いて、数百万行のAndroidコードにおける競合状態を大規模に発見したか。
FacebookのAndroidアプリにはパフォーマンス上の問題があった。UIスレッドが仕事に溺れていたが、コードをバックグラウンドスレッドに移すと競合状態が生じた。プロダクションでのクラッシュ。怒ったユーザー。…
2 posts
Facebookがどのように抽象解釈と意図的なunsoundnessを用いて、数百万行のAndroidコードにおける競合状態を大規模に発見したか。
FacebookのAndroidアプリにはパフォーマンス上の問題があった。UIスレッドが仕事に溺れていたが、コードをバックグラウンドスレッドに移すと競合状態が生じた。プロダクションでのクラッシュ。怒ったユーザー。…
model checkingが、concurrency bugを発見するためにアプリを数日間実行することをどう凌駕するか、そして自分のコードにどう応用するか。
productionでrace conditionが出るのを待つのは、テストじゃない。勤勉のフリをした希望だ。 アプリを何週間も走らせ、metrics dashboardを見張っていても、2つのrequestがまさに同じcache eviction windowに突入したときだけ発火するconcurrency…