Ruby Web アプリケーションで CPU サイクルを節約する方法は何ですか? 私のプロジェクトが拡大するにつれて、レンダリング、メソッドの実行、db クエリの平均時間が増加しています。平均60msが高いと思います。マシンコードをタイトでコンパクトに保つための設計ガイドラインはありますか? のように - 完全にオブジェクト指向ですか? 繰り返しの繰り返しを避けるために、より多くの変数とメモリを使用していますか? データベースクエリを統合していますか?
4 に答える
実際にすべてのチューニングを開始する前に、ボトルネックを見つけてください。
問題はCPUにあると確信していますか?それはあなたのストレージシステムですか?, それはあなたの方法ですか? それはあなたのDBですか?データベースでidicesを使用していますか?データベースで必要なインデックスをさらに使用していますか?
あなたの質問に対するオールインワンのソリューションはありません。
プロファイラーに対してアプリケーションを実行する必要があります。これにより、ソフトウェアのどのポイントが最も多くのリソースを消費するかが判断されます。その部分を最適化し、満足のいく結果が得られるまで操作を繰り返します。
ruby-prof、gperftools、および newrelic などのパフォーマンスを測定するためのツールはたくさんあります。Google でこのキーワードをチェックしてください。
キャッシングを調べましたか?これは、Web アプリケーションを高速化し、高トラフィックにスケーリングするための非常に重要なツールであり、多くの場合、通常のコード最適化よりも桁違いに効率的です。
実際に遅い部分を見つけるためにコードをプロファイリングする (正しい) 答えに加えて、ユースケースでより高速になる可能性のある別の Ruby 実装を調べることもできます。
見る:
標準の 1.9 インタープリターよりも高速であると報告されている 2 つの代替手段について。