Ruby WebアプリケーションでCPUサイクルを節約する方法は何ですか?私のプロジェクトが拡大するにつれて、レンダリング、メソッドの実行、dbクエリの平均時間が増えています。私は60msの平均を高いと考えています。 機械コードをしっかりとコンパクトに保つための設計ガイドラインはありますか?ように - 完全にOOされている? 繰り返す反復などを避けるために、より多くの変数とメモリを使用しますか? dbクエリを統合しますか?Ruby/RailsでCPUサイクルを節約する方法は?
答えて
実際にすべてのチューニングを開始する前に、ボトルネックを見つけようとします。
CPUに問題がありますか?それはあなたのストレージシステムですか?それはあなたの方法ですか?それはあなたのDBですか?あなたのDBにidicesを使用していますか?あなたはあなたのデータベースに必要なより多くのインデックスを使用していますか?
ご質問の解決策はありません。
プロファイラに対してアプリケーションを実行すると、ソフトウェアのどのポイントが最も多くのリソースを消費するかが決まります。結果に満足するまで、その部分を最適化して操作を繰り返します。
パフォーマンス、ルビー教授、gperftools、およびnewrelicのようなものを測定するための豊富なツールがありますが、ある部品を見つけるためにあなたのコードをプロファイリングする(正しい)の回答のほかグーグル
助けていただきありがとうございます。 –
あなたは、ほとんど間違いなくあなたはまた、JRubyのhttp://www.jinspired.com/site/jxinsight-opus-for-jruby-edition-1-ためJXInsight /オーパスを試してみることができ、その後になっているはずですJRubyのVMを使用している場合0 –
にこのキーワードをチェックしてください実際には遅い場合は、ユースケースの方が速い別のRuby実装を調べることもできます。
参照:標準1.9インタプリタよりも高速であることが報告されている2つの選択肢のための
。
cachingを調べましたか?これは、Webアプリケーションの高速化と高トラフィックへの拡張を実現するための非常に重要なツールです。多くの場合、通常のコード最適化よりも効率的です。
キャッシングは、プロファイリングと最適化後の最後のものにする必要があります。維持してデバッグするのは難しいです。ソフトウェア開発で最も難しいことの1つはキャッシュの無効化という有名な言葉を思い出してください。 – astropanic
- 1. TCPTransportを$ ConnectionHandler.runでCPU時間を節約する方法
- 2. SceneKitレンダリングデリゲートでCPUの労力を節約する方法はありますか?
- 3. PythonでCPUサイクルを無駄にする
- 4. texreg:htmlreg-regressionテーブルのスペースを節約する方法は?
- 5. SQL Server CE:時間を節約する方法は?
- 6. アンドロイドアプリの共有設定で時間を節約する方法
- 7. java.lang.OutOfMemoryError:Javaのヒープスペース - メモリの節約方法
- 8. クロムがウェブページを節約する方法を変更する
- 9. ASP.NET Sharepointアプリケーションのデバッグプロセスを時間を節約する方法
- 10. mysqlの価格を節約する方法
- 11. jsxのスペースを節約するには?
- 12. C++ Tensorflow、セッション - > Run()をマルチスレッドで実行する方法、または時間を節約する方法
- 13. Google App Engine(Python)でリソースを節約するための一般的な方法
- 14. yii2でAM/PMと一緒に時間を節約する方法
- 15. ミラーリングされたNxNアレイで空間と時間を節約する方法
- 16. EMACS節約問題
- 17. ハッシュマルチマップスペース節約問題
- 18. Momentjs節約月先
- 19. JavaEEのクラウドホスティング(CPUサイクルごとに課金)
- 20. 実行時間をCPUサイクルで測定しますか?
- 21. アンドロイドでバッテリー節約モードでアニメーションを再生する方法は?何か回避策はありますか?
- 22. CPUサイクルとその処理ビット数を計算する
- 23. Java関数のCPUサイクルを計算する
- 24. 古いデータをマージしてElasticsearchのスペースを節約する方法
- 25. タイプキャスティングで余分なCPUサイクルが消費される
- 26. クロノメーターから時間を節約し、別のアクティビティからアクセスする方法
- 27. JDKとjoda-time dateformatter:昼間の節約時間を考慮する方法
- 28. 1サイクルでCで配列をソートする方法は?
- 29. firebird:where節で '%'を使う方法は?
- 30. ウェイポイントを節約し比較を行う最も効率的な方法は?
もっと速いコードを試したいなら、javaまたはC++を試してください – xis
同意してください。 Rubyは非常に強力で、素早く実行するためには優れているようですが、素早く実行するためのものではありません。そこでは最も遅い言語の1つです。しかし、Rubyに固執していても、おそらく何かをスピードアップする方法があります。 – cHao
これらの方法は既存のコードに依存します。パフォーマンスの問題を絞り込む必要がないことを考慮すると、可能な最適化をカバーする書籍全体が必要になります。 – cHao