Blogリンカーズ株式会社の技術ブログです。開催しました!勉強会みなさんこんにちは、リンカーズ情報システム部の大河原です。弊社でもテックブログを始めることになりました。Twitter(@Linkers4System)とあわせてよろしくお願いします。Railsを採用しています。弊社では在籍するエンジニアが技術力を磨いていくための社内勉強会に力をいれており、その一環として、アドバイザー:まつもとゆきひろ氏(Matz)との勉強会を月例で行っています。まつもとさんは言わずと知れたRubyの生みの親です。リンカーズのエンジニアにとって、この勉強会は普段学んだ技術をぶつけて疑問を解消する場となっています。勉強会は担当者2名が順にLTを行い、それぞれまつもとさんにコメントをいただく形で進めます。2.6.0-preview3がリリースされたことにより、さっそくメンバーの1人がベンチマークを行ってくれました。JIT(Just-In-Time)コンパイラとは、コードの実行時にコンパイルを行うことによって実行速度の向上を測る技術です。2.5の約1.7倍の性能向上を達成」しているとのこと。5)を変化させて比較を行っていました。その結果、デフォルトで実行するとJITを行ったほうがずっと遅い2.6.0-preview3のJITなしに比べ、JITありは約1.7倍時間がかかるjit-max-cacheを変化させても、対象メソッドが多すぎて使い尽くしてしまうため、コンパイル時間増加のデメリットの方が大きいjit-min-callsを増やすと性能が徐々に上がるが、100,000くらいで頭打ちになるこのときの実行時間は2.6.0-preview3のJITなしと同じくらいで、別に速くはないデフォルトが5というのは少なすぎる気がするのような結果と考察が得られました。まつもとさんからは、以下のようなコメントをいただきました。コンパイルと実行の並行処理JITコンパイラはベンチマークには効くが、実用アプリケーションにはまだ課題が多い2.6.0での進歩は「JITが使えるようになった」ことそのもの将来的にはChromeのJavaScriptエンジンで実績のある2段階JIT構成となる可能性もあるまだまだできたばかりのJITコンパイラですので、ユーザ側として今後の発展に期待、といったところでしょうか。(参照の局所性が小さいRailsにはそもそもあまり向いてないのかも知れません。以下のようなお客様の要望がありました。ユーザテスト環境で操作するとき、複数のアカウントで届いたメールを1人で確認したいGmailにアクセスできる環境ならばexample+something@example.comのようにエイリアスを使えば済む話なのですが、Gmailにアクセスできない環境であるとのこと。1人に1つしかメールアドレスがないため、複数のメールアドレスから届いたメールを確認する手段がないということです。複数アカウントへのメールをすべて受け取れるソフトはいくつかあるものの、開発環境用でユーザ認証などの細かい制御ができず、自作することに。スクラッチで実装したのは、Railsでできない「メールを受け取る」という操作を行うデーモンです。このデーモン化の方法が問題で、情報が錯綜しており何が正解かわからない。使用したライブラリ(MidiSmtpServer)のドキュメントにも書かれていませんでした。結局、Process.daemonを使って1行で済ますことにしたとのこと。まつもとさんによると、Process.daemonはC言語のdaemonメソッドを継承して作ったとのこと。「正しい」かどうかは別にして、作者の意図通りの使い方であるようです。"1.9"の制御構造についても、まつもとさんに聞いてみました。すると、以下のような回答をいただけました。Rubyで学ぶUnixの基礎」を読みましょうシステムプログラムに強いメンバーが少なく、ほとんどの人が初めて知った内容でした。第2版」)が終わったら再度検討したほうが良さそうです。)氏との読書会を行うなど、社内勉強会に力を入れています。ビジネスマッチングに興味のある方、Railsエンジニアとしてキャリアアップしたい方、どなたでも以下のリンクからお問い合わせください。今後も、更新を継続していく予定です。...プロフィールリンカーズ株式会社の技術ブログです。@Linkers4Systemはてなブログをはじめよう!sunshaodiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。