タグ

最適化に関するfn7のブックマーク (2)

  • Go1.7からSSAが導入された - flyhigh

    初めに Go 1.7がリリースされる。目玉の一つは、SSA-IRが導入されたことだろう。Go1.7でSSAが入るんだけど、SSAって何?と居酒屋で聞かれたことが稿の発端だった。私の知識だけでは包括的な説明にならなかったので、いろいろ調べつつそれをまとめた。 以下、一般的な話ではなく、なるべくGoに絞って話を進めている(コンパイラのコードははcmd/compile/internal/gcあたりにある)。より一般的な話は、参考文献等を示したのでそちらを参考にしてほしい。いろいろ調べて、Goに追加されたSSAについて知るべきことは、SSAが何か?よりも、SSA導入したGoがどうなったか、であると思った。 SSAとは何か SSA とは Static Single Assignmentの略だ。一つの変数への代入は一度しか行われてない事が確約できる形式のコードだ。この形式のコードは、最適化が行いやす

    fn7
    fn7 2016/08/15
    YAGNIじゃできない改善
  • 最適化の心得 or HTTP::MobileAttribute最適化祭りに参加してみた - D-6 [相変わらず根無し]

    最適化の心得 or HTTP::MobileAttribute最適化祭りに参加してみた HTTP::MobileAttributeの最適化祭りに突発的に参加してみた。 正直言うと未だにHTTP::MobileAttributeの中身であるClass::Componentを分かってない。なのでできることも限られてるわけだが。 今回のミニ祭りを見ていてよくわかるのは結局のところスピードに最も影響があるのは端的なコードの書き方ではなく構造(ストラクチャ)を見直す事であるというだ。id:tokuhiromのところでパフォーマンスチューニングの結果を追ってる人はわかると思うけど、結局俺が参加したのはもう当にコードの書き方をチューニングするというレベルのところで、例えばループをアンロールしてif/elseで実装してみるとかね。でもそこはどんなにがんばっても数%のパフォーマンスゲインにしかならない。

  • 1