1.9では平均して基本機能の実行が5倍程度、テスト項目によっては最大20倍程度速くなる——。大岡山キャンパスで、IPA(情報処理推進機構)が毎年行っているIPA未踏ソフトウェア創造事業2006年後期に採択された、いくつかのプロジェクトの最終成果報告会が行われた。報告を行ったプロジェクトの1つは「Ruby用仮想マシンYARVの完成度向上」。特任助手の笹田耕一氏は、最新のベンチマーク結果を披露した。YARVでは、さまざまな高速化を行っている。広範囲に高速化の影響が及ぶ例として固定長整数の演算の最適化があるという。現行のRubyでは単純な整数演算の演算子であっても、該当するメソッドを呼び出している。YARVでは、このメソッド呼び出しを省略してダイレクトに演算することで大幅に高速化している。ユーザーが演算子を新たに定義した場合には逆に余分な処理が発生するためパフォーマンスが落ちるが「高速化はトレードオフ」(笹田氏)で、一般的なコードで効率が上がる方法を採用するというのがYARVのアプローチだという。YARVは、本家Rubyに取り込まれることが決定している。1.9から導入される。現在、笹田氏はまつもと氏と“緊密な連携”を取りながら、高速化と品質の向上を進めているという。D搭載マシンのLinux上で実行した場合。横軸は現行Rubyに対して何倍速いかを示す。フィボナッチ数列の計算では8〜10倍高速化されている。基本機能の性能向上によって、実アプリケーションの実行速度も1.5〜2倍速くなるという笹田氏が示した“緊密な連携”の例。今後の研究テーマとして笹田氏は、並列処理への対応などスケーラビリティに取り組みたいと話す。「Rybyの言語仕様の枠組みでスケーラビリティを上げるのは難しい」ため、マルチコア、マルチプロセッサといった密度の高い並列化よりも、クラスターやグリッドのようにネットワークで接続された複数ホストによる並列化を実現していくのがいいのではないかという。現在、楽天とまつもと氏は共同研究として、同様のRubyによる並列化処理フレームワークの開発に取り組みつつある。それは10台のサーバに対して、Rubyを入れて処理を手軽に分散させられるフレームワークになるという。実行速度の問題から、フレームワーク自体はC言語で書かれる可能性もあるが、利用者はRubyを使って複数サーバの遊休リソースを効率的に使えるようになるという。World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。(2017/7/6)日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。Excel」で使えるVBAを紹介する。国内売れ筋TOP10(2024年11月)今週は、マーケティングオートメーション(MA)ツールの売れ筋TOP10を紹介します。