タグ

RubyとPerformanceに関するYassLabのブックマーク (26)

  • Rubyは思ったより速いかもしれないとの指摘 | ソフトアンテナ

    国産プログラミング言語「Ruby」は、インタプリタ型のプログラミング言語であるため、「処理速度が遅そう」というイメージを持つ開発者の方もいるかもしれません。 しかし今回、Rubyで書かれたプログラムも工夫次第で十分高速に操作することを、John Hawthorn氏はブログ記事「Ruby might be faster than you think」で指摘し、Hacker NewsやRedditで注目を集めています。 同氏が例として掲載しているのは、crystalrubyと呼ばれる、Rubyの中からCrystalを呼び出すためのgemのサンプルプログラムです。 CrystalはRubyに似た構文を採用した静的型付けプログラミング言語です。 フィボナッチ数を計算するプログラムで、Pure Ruby版のfib_rbとCrystalのコードを呼び出すfib_crの実行速度を比較しています。 req

    Rubyは思ったより速いかもしれないとの指摘 | ソフトアンテナ
    YassLab
    YassLab 2024/05/22
    “Rubyで書かれたプログラムも工夫次第で十分高速に / John Hawthorn氏はブログ記事「Ruby might be faster than you think」で指摘し、Hacker NewsやRedditで注目 / ブロックが配列を生成することに着目し、これを抑制することで速度を改善”
  • スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで - スタディサプリ Product Team Blog

    こんにちは。SREのkyontanです。Rubyが大好きなのでRubyの話をします。ちなみにリクルートはRubyKaigi 2024へGold Sponsorとして協賛しています! *1。ぜひ沖縄でお会いしましょう。 これはあるアプリケーションのメモリ消費量を示すグラフなのですが、まさかgemを入れ替えるだけでこんなに嬉しい変化が見られるとは思っていませんでした。今日はそんなgemの話をします。 話は遡って2023年4月のある日、インターネットを眺めていたところ、ShopifyがpitchforkというOSSを公開したという情報が目に留まりました。 調べてみると、どうやら著名なRackサーバー実装の1つであるunicornの派生版であり、メモリ使用量の削減に特化しているらしいのです。 github.com これはスタディサプリ小中高のあのリソースドカいマイクロサービス第一位である api

    スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで - スタディサプリ Product Team Blog
    YassLab
    YassLab 2024/04/02
    "松本で行われたRubyKaigi 2023に参加した際にはAfter Partyでbyroot氏とも対面で会話し、多分そのワークロードだとうまく動くと思う、みたいな会話 / 先は長そうだ……と思いつつpitchforkにissueを立ててみると、なんと40分で解決"
  • Ruby のメモリ使用量問題を調査し upstream で解決していただいた話 - ANDPAD Tech Blog

    はじめに こんにちは。リアーキテクティングチームの髙橋と申します。 この記事では、アンドパッドの施工管理サービスで利用している Ruby をバージョンアップしたときに発生したメモリ使用量の問題の発生から解決までをお話しします。 Ruby のバージョンアップ(3.0 -> 3.2) アンドパッドでは昨年 2023 に、施工管理サービスで利用している Ruby を 3.0 から 3.2 にバージョンアップしました。 バージョンアップ自体は過去に確立済みの手法(詳しくは過去記事をご参照ください)により、粛々と進められリリースされました。 ところがこのリリースから数日後、とある問題が発覚しました。 メモリ増大問題 アプリケーションのリソース使用状況を監視している SRE チームのメンバーから、以下のような連絡がありました。 Ruby バージョンアップのリリース以降、アプリケーションの利用するメモリ

    Ruby のメモリ使用量問題を調査し upstream で解決していただいた話 - ANDPAD Tech Blog
    YassLab
    YassLab 2024/02/16
    "社内で事象を共有したところこの問題はRuby本体に報告するべきという話に / コミッタの柴田さんから代わりにBug #19969として報告 / 修正コミットがRubyのmasterブランチに入り、バックポートもRuby 3.1, 3.2それぞれに入りました"
  • Ruby 3.3でYJITを今すぐ有効にすべき理由 - k0kubun's blog

    Ruby 3.3がリリースされた。YJITには非常に多くの改善が含まれたリリースだったが、 NEWS解説記事やリリースパーティーでは 2点しか触れられなかったので、この記事ではRuby 3.3でYJITがどう改善されたかについて解説する。 YJITは既に実用段階 YJITRuby 3.1で導入されたが、Ruby 3.2の時点でexperimentalのマークが外れ、実用段階となった。 Ruby 3.2では、以下のような企業で性能改善が報告された。 DeNA: 40% 高速化 GMOペバボ: 18% 高速化 STORES: 6.5-7.5% 高速化 Timee: 10% 高速化 メドピア: 2.8% 高速化 BOOK☆WALKER: 20-30% 高速化 Discourse: 15.8-19.6% 高速化 Lobsters: 26% 高速化 CompanyCam: 20-40% 高速化 弊

    Ruby 3.3でYJITを今すぐ有効にすべき理由 - k0kubun's blog
    YassLab
    YassLab 2023/12/27
    "Ruby 3.2では以下のような企業で性能改善が報告された。DeNA: 40% / GMOペバボ: 18% / Timee: 10% / STORES: 6.5-7.5% / メドピア: 2.8% / Discourse: 15.8-19.6% / Lobsters: 26% / CompanyCam: 20-40% / Ruby 3.3.0は比較的安定したリリースになっているはず"
  • GitHub - benchmark-driver/benchmark-driver: Fully-featured benchmark driver for Ruby

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - benchmark-driver/benchmark-driver: Fully-featured benchmark driver for Ruby
    YassLab
    YassLab 2022/12/07
    “Fully-featured benchmark driver for Ruby 3x3 / Ruby interface similar to stdlib benchmark.rb, benchmark-ips / YAML input to easily manage structured benchmark set / Comparing multiple Ruby binaries, even with miniruby”
  • フレームグラフを読むのは簡単ではありません

    Speedshopによる『Ruby Performance Newsletter(日語版)』をお届けします。 翻訳:島田 浩二 フレームグラフを読むのは簡単ではありません。 練習が必要です。ですが、ちょっとしたコツもあります。ここではそれを紹介します。 フレームグラフやウォーターフォールチャートを呼ばれる種類の可視化を見ないで1日を過ごすことは、ほとんどありません。大抵はSpeedscopeやChrome DevToolsで、そういった可視化を目にしています。 著書の多くやワークショップの中でフレームグラフの読み方を教えていると、そこでつまづく人を見かけます。フレームグラフを読んで理解するのは、ある程度はスキルの話です。スキルを身につけるには、絶え間ない練習が必要です。 ただ、フレームグラフを読むスキルはサブスキルに分解できます。その場合に最も重要だと私が考えるのは、「どのフレームが重要

    YassLab
    YassLab 2022/11/16
    “フレームグラフはパフォーマンス向上のための重要なツールです / 試し続け、見続けていけば、最終的には効果的に使用するのに必要な「パターン認識」を学べるはずです”