2015年8月26日水曜日

これがAngularJSの$apply()や$digest()が低速な理由のひとつか?

昨日書いた記事 「琴線探査: Dr. GlebのAngularアプリ最適化TIPSまとめ」 に、try-catchがあるとV8では最適化されないため処理が遅くなると書いた。

今日は自分で書いたアプリをプロファイルしてみた。このように、$apply()や$digest()に相当な時間がかかっていることが分かった。


これは予想通りだったが、驚いたのは$apply()や$digest()でtry-catchを使っているらしいことだ。

「Not optimized: TryCatch Statement」とツールチップが出ている。ひょっとすると、これが$apply()や$digest()が低速な理由のひとつなのかもしれない。

だとすると、かなり根本的なレベルで高速化できていないことになる…内部的にtry-catchを使わないようにできないのかなぁ(´・ω・`)