タグ

ブックマーク / techlog.mvrck.co.jp (2)

  • JVMのバイトコードの実行時最適化について発表してきた - Maverick Techlab

    こんにちは、todeskingです。 ScalaMatsuri 2016将軍スポンサーが合同で開催した「Scala将軍達の後の祭り」 というイベントで、バイトコードの実行時最適化について発表してきました。 抽象化によってオーバヘッドが存在するコードを実行時にバイトコードレベルで最適化すれば、抽象化とパフォーマンスが両立出来てお得、という夢のある話です。 以下、補足など。 なぜ実行時に最適化するのかこれにはいくつか理由があって、 安全性クラスの解決は実行時に行われるため、コンパイル時と実行時で見えているクラスが違うということがありえます。 そのため、静的に大域的な最適化をする場合は、実行時にクラスパスが変化しないことを保証する必要が出てくる解析が楽実際に構築されたインスタンスを元に最適化できるので、フィールドの値に基づく最適化が楽柔軟性実行時になるまでインスタンスの内容が確定しない場合(外部

    JVMのバイトコードの実行時最適化について発表してきた - Maverick Techlab
  • Monocleのコミッターになりました - Maverick's tech blog

    ご無沙汰しています。最近カレーがマイブームのプロダクトグループ所属エンジニアのあおいの(@AoiroAoino)です。 私事ですが、前回書いた記事にも登場したMonocleというライブラリのコミッターになりました。 で、早速なんか記事書いてと言われました()ので、今回はとりあえず代表的な(?) Lensについて、適当に書こうかなと思います。 Lens とは? 例えば、こんな感じのデータ構造と、その適当なインスタンスがあったとします。 // 適当なデータ共 case class Job(id: Int) case class Player(name: String, job: Job) case class Game(player: Player, stage: Int) val game1 = Game(Player("Aoino", Job(3)), 1) このネストしたgame1の一番

    Monocleのコミッターになりました - Maverick's tech blog
  • 1