NDK, pthread and Systrace
ART はロックの競合を Systrace に記録してくれため、どのスレッドがどのスレッドを待っているのかがひと目でわかる。これは素晴らしい機能で、マルチスレッドコードのクリティカルパス解読を助けてくれる。
自分が仕事でみているアプリは大量にネイティブコードがあるのだが、こいつらが pthread でロックを待つと Systrace 上にはただ "pthread の lock を待ってます" とだけ表示される。嬉しくない。もうちょっと詳しく教えてくれ・・・。
まあアプリのレイヤで使う pthread が不透明なのは自業自得といえなくもないが、platform のコードも同じ問題も持っているのでやはりお前らなんとかしろ!と思う。なんとかしていただきたいものです。