タグ

ブックマーク / k0kubun.hatenablog.com (7)

  • Ruby コミッターになりました - k0kubun's blog

    m_sekiさんとhsbtさんの推薦で、ERBのメンテナとしてRubyのコミット権をいただきました。 以下が初コミットです。 github.com 普段テンプレート言語Hamlの高速化やその更に高速な別実装Hamlitの実装をやっていてテンプレートエンジンの高速化に知見があり、ちょこちょこERBにも知見を還元したりしていたのですが、一昨日ふとERBの生成コードのiseqを眺めていた時に気付いてパッチを送った後、「入れるのめんどくさいし、ERBのコミッタやりますか」とお声がけいただいた形です。 というわけで、引き続き主に高速化の方面でERBのメンテナンスをやっていきますが、他にも以前僕がC拡張にしたHTMLエスケープとか、広い範囲でパフォーマンス改善をやれたらいいなと思います。 さっきのパッチに関連してto_sもメソッド呼び出しをバイパスできるようにしたら結構いろんなものが速くなるんじゃない

    Ruby コミッターになりました - k0kubun's blog
  • Hamlを3倍速くした - k0kubun's blog

    Hamlコミッターになった RubyKaigi 2015で「Hamlは遅いしメンテされてないので使わない方がいい」と言ったところ、じゃあ自分でメンテして速くしろということになりコミッターになった*1。 当時から2年ごしなのは、当時のHamlのオーナーがあまりアクティブではなく、最近a_matsudaさんがオーナーになったため。 HamlのTemple化・高速化を行った Templeというのは、テンプレートエンジンをパイプライン的に構築するためのフレームワークで、テンプレートエンジン用の中間表現とその最適化エンジンを持つ。実装をTempleベースにすると、SlimやHamlitに使われているような中間表現を使った最適化を適用しやすくなる。 コミット権をもらったので、RubyKaigi 2015でマージされないと言っていたパッチを自分でマージし、コード生成とattributeのコンパイルをTe

    Hamlを3倍速くした - k0kubun's blog
  • k0kubun's blog

    今年で30歳、社会人9年目、在米5年目になった。今年は 趣味でRJITを作り、仕事でYJITを超高速化した 初めて論文を国際会議に投稿し、採択された 子供とプリスクールに行き始めた という感じの一年だった。 仕事 大変ありがたいことに、自分が今一番興味のある仕事であるYJITの高速化に集中できた一年だった。 いろいろやったが、代表作は以下の三つかなと思う。 スタックオペランドのレジスタアロケータ 最適化未対応なメソッド呼び出しのフォールバック 例外ハンドラのコンパイル どれもベンチマークがかなり速くなった。 特に二つ目と三つ目は、自分で発案してかつ主に僕が重要性を訴えていた奴で、 それらで大きな成果が出たときはかなり達成感があった。 単独のPRでRailsベンチが7%速くなった時はこりゃ昇給するわと思ったが、実際めちゃくちゃ昇給した。 ベンチマークも速くしている一方、僕は番アプリの最適化

    k0kubun's blog
  • Railsの静的ファイルをnginxでルーティングする - k0kubun's blog

    railsアプリに使ってるドメイン内で静的ファイルを公開したくなったので調べた。 serve_static_assets config.serve_static_assetsがtrueになっていると、public以下のファイルにアクセス可能になる。 しかし、速度の問題で静的ファイルはwebサーバーに処理させたほうが良いので、productionではデフォルトでfalseになっている。*1 nginxでの静的ファイルのルーティング locationの指定には以下の3つの方法がある。 正確にマッチするクエリを指定: location = /hoge/ 正規表現を指定: location ~* \.png*2 先頭からマッチするクエリを指定: location /documents/ 上から順にマッチし、マッチした場合はそこで検索をストップする。*3 以下がルーティングの例 upstream f

    Railsの静的ファイルをnginxでルーティングする - k0kubun's blog
  • Karabinerの設定を楽に書けるやつ作った - k0kubun's blog

    経緯 いろいろ思うところあってエディタを乗り換えようと思ったんだけど、キーバインドを異常にカスタマイズしているおかげで、みんなが使うはずの基的なキーバインドが衝突して押せないという事態が発生し、Karabinerの設定を大きく変える必要が出てきた。 で、xml書いてたんだけど、xmlいじるの大変だし、Karabiner特有の識別子を知らないと書けないのでなかなか進まなかった。 そこで、Karabinerの設定を書くのが楽になるよう、RubyのDSLを書くとXMLを吐いてくれるやつを作った。 k0kubun/karabiner-dsl どう使うのか まず、こういうのを書いて~/.karabinerとして保存する。 item "Control+PNBF to Up/Down/Left/Right", not: "TERMINAL" do remap "C-p", to: "Up" remap

    Karabinerの設定を楽に書けるやつ作った - k0kubun's blog
    baboocon19820419
    baboocon19820419 2015/08/17
    お、これいいな。試してみたい。
  • Slimより高速なHaml実装「Hamlit」をリリースしました - k0kubun's blog

    slim-template/slimのcompiled benchでオリジナルのhamlに比べ8倍高速に動作するhaml実装をリリースしました。 github.com なぜ高速なHaml実装を作ったのか 個人的にhamlのシンタックスのほうが好きなので、「hamlは遅いからslimを使う」みたいな人を減らしたかったから。以前slimの普及に貢献したんだけど、気が変わったのでhamlを応援することにした。 実は他にも既にeagletmt/famlという高速なHaml実装が存在していたんだけどベンチを走らせたらslimより遅かったので、slimを打倒するべく再実装した。 どのくらいHamlより速いのか 自分の実装に都合のいいベンチマークを作るのは簡単なので、公平性を期すためにslim-template/slimのcompiled benchと同じものを使い、誰でも同じ環境が使えるtravisで

    Slimより高速なHaml実装「Hamlit」をリリースしました - k0kubun's blog
  • PCを自作してArch Linuxを入れた - k0kubun's blog

    社会人になって経済的に余裕ができてきたので、はじめての自作PCに挑戦することにした。 入社直後に生活が苦しすぎてヤフオクでiMacを売ってしまったのでデスクトップPCが欲しかった。 材料 種類 型番 値段 CPU Intel Core i7 4790K (4 core / 8 threads, 4.0GHz) ¥39,500 マザボ ASRock Z97 Extreme4 ¥12,980 メモリ CT2KIT102464BA160 (DDR3-1600, 8GB x 2) ¥13,999 SSD CT120BX100SSD1 (120GB) ¥8,277 DVDドライブ iHAS324-17 ¥1,780 電源 KRPW-PT600W/92+ (600W) ¥9,980 PCケース CMS-693-KKN1-JP ¥11,800 合計98,316円。前日が給料日だったのでうっかり手が滑って

    PCを自作してArch Linuxを入れた - k0kubun's blog
    baboocon19820419
    baboocon19820419 2015/08/17
    Let'sNote RZ4プレミアムエディションにArchLinuxをインストールした俺が通りますよっと。
  • 1