1. ホーム
  2. ruby

[解決済み] なぜRubyは遅いと言われるのか?[クローズド]

2022-04-14 08:11:13

質問

私はRuby on Railsが好きで、すべてのWeb開発プロジェクトに使っています。 数年前、Railsはメモリを大量に消費するとか、あまり拡張性がないとか、いろいろ言われていましたが、Gregg Pollackによって、これらの指摘は一掃されました。 こちら .

最近、Ruby自体が遅いという話も聞きますが。

  • なぜRubyは遅いと言われるのか?

Rubyが遅いとは感じていませんが、簡単なCRUDアプリや会社のブログを作るのに使っているだけです。 どんなプロジェクトに参加したら、Rubyが遅いと感じるようになるのでしょうか? それとも、この遅さは、すべてのプログラミング言語に影響するものなのでしょうか?

  • この "slowness"に対処する場合、Ruby プログラマとしてどのような選択肢があるのでしょうか?

  • Stack Overflowのようなスピードが重要でトラフィックが激しいアプリケーションには、どのバージョンのRubyが最も適していますか?

この質問は主観的なもので、アーキテクチャのセットアップ(EC2とスタンドアロンサーバーなど)が大きな違いを生むことは承知していますが、Rubyが遅いということについて人々がどう考えているかを聞きたいと思います。

最後に、Ruby 2.0に関するニュースがあまり見当たりませんが、数年先ということでしょうか?

解決するには?

<ブロッククオート

なぜRubyは遅いと言われるのか?

なぜなら、Rubyと他の言語の典型的なベンチマークを実行すると、Rubyが負けるからです。

<ブロッククオート

私はRubyが遅いとは思いませんが を作るのに使っているだけです。 簡単なCRUDアプリや会社のブログなど。 どのようなプロジェクトが必要なのでしょうか? をする前に、Rubyが 遅いですか?それとも、この遅さは すべてのプログラミングに影響するもので 言語ですか?

リアルタイムのデジタル信号処理アプリケーションや、リアルタイムの制御システムを書くには、おそらくRubyはあまり役に立たないでしょう。スマートフォンのようなリソースに制約のあるコンピュータでは、(今日のVMを使った)Rubyはおそらく息が詰まるでしょう。

例えば、Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, 多くの解析ライブラリ, RMagick, TCP/IP などは Ruby で使われる C プログラムです。Rubyが糊付けとビジネスロジックを提供するのです。

<ブロッククオート

Rubyとしての選択肢は? プログラマーは この "slowness"は何ですか?

より高速な言語に変更する。しかし、それにはコストがかかる。そのコストに見合うだけの価値があるかもしれません。しかし、ほとんどのWebアプリケーションでは、言語の選択は重要な要素ではありません。なぜなら、開発コストが高い高速な言語を使うことを正当化できるほどのトラフィックがないからです。

<ブロッククオート

どのバージョンのRubyが最も適しているか スタックオーバーフローのようなアプリケーション 速度が重要で、トラフィックが多い場合 激しいですか?

JRuby、IronRuby、REEは、VMに余裕があるプラットフォームでは、アプリケーションのRuby部分をより速く走らせることができます。そして、多くの場合、遅さの原因はRubyではなく、コンピュータシステムのアーキテクチャとアプリケーションのアーキテクチャなので、データベースのレプリケーション、複数のアプリケーションサーバ、リバースプロキシによるロードバランス、HTTPキャッシュ、memcache、Ajax、クライアントサイドキャッシュなどのようなことを行うことができます。どれもRubyではありません。

最後に、このような Ruby 2.0は、まだ数年先ということですね。 何年も先の話?

ほとんどの人がRuby 1.9.1を待っています。私自身は、Ruby 1.9.1 on JRubyでのRails 3.1を待っているところです。

最後に、多くの開発者がRubyを選ぶ理由は、他の言語に比べてプログラミングが楽しくなること、そしてRuby with Railsによって熟練したWeb開発者が非常に速くアプリケーションを開発できるようになるためであることを、ぜひ覚えておいてください。