「Ruby 2」の3倍の高速化を目指した「Ruby 3.0.0」が公開:7年ぶりのメジャーリリース
オープンソースプログラミング言語「Ruby」の最新メジャーリリース「Ruby 3.0.0」が公開された。新版の主な改善点はパフォーマンス改善、並行処理、静的解析の3点。
Ruby開発チームは2020年12月25日、オープンソースプログラミング言語「Ruby」の最新メジャーリリース「Ruby 3.0.0」(以下、Ruby 3.0)を公開したと発表した。
Ruby 3.0はパフォーマンスの改善、並行処理、静的解析の3点を目標に開発されてきた。特にパフォーマンス改善については、「Ruby 3x3」として「Ruby 3はRuby 2の3倍速くする」ことが目標に掲げられてきた。
実際にRuby 3.0では、Optcarrotベンチマークで3倍の高速化を達成できた。
パフォーマンスを改善
Ruby 2.6で導入されたJIT(Just In Time)コンパイラアーキテクチャ「MJIT」にさまざまな改善が施された。これにより、AIやOptcarrotで性能を評価できるゲームなど、少数のメソッドを多数呼び出すことに多くの時間を費やすアプリケーションの性能をJITが改善できるようになった。
一方、生成コードのサイズを大幅に削減したものの、「さまざまなメソッドを満遍なく呼び出す『i-cache』への負荷が大きい『Rails』のようなワークロードでは、JITコンパイラがその負荷を大きくしてしまうため、性能を改善できる状態には至っていない」とRubyチームは述べ、Ruby 3.1での改善を表明している。
並行処理を実験的に導入
アクターモデル風の並行並列制御機構である「Ractor」が実験的に導入された。Ractorはスレッド安全に関する懸念がなく、Rubyで並列処理を実行できるように設計されている。
関連記事
- “Be Hungry-ous” フレンチエンジニアは全てを楽しむ
フランス出身のNicolas Modrzyk(ニコラ・モドリック)氏は持ち前の人懐っこさとユーモアを武器に、OSSのイベントや書籍出版などさまざまなチャレンジをする。そんな同氏がエンジニアに送る「Be Hungry-ous」の意味とは。 - Ruby 2.6が公開、JITコンパイラを実装
「Ruby 2.6.0」が公開された。JIT(Just-In-Time)コンパイラが導入されたことに加え、処理性能を向上させる改善が複数施されている。終点なしRangeなどの新機能も実装された。 - 難しいが強力! Rubyのメタプログラミング、self、特異クラス/メソッド、オープンクラスとモンキーパッチ
オープンソースのオブジェクト指向プログラミング言語「Ruby」の文法を一から学ぶための入門連載。最新版の2.1に対応しています。今回は、Rubyの「黒魔術」といわれるメタプログラミングの概要、self、特異メソッド、特異クラス、オープンクラス、モンキーパッチなどの使い方をコード例を交えて解説します。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.