問題タブ [ruby-prof]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
671 参照

ruby - プロファイルJekyllビルド時間

私はJekyllを使用してサイトを構築していますが、サイトのコンパイルにかなり長い時間(数分)がかかり始めています(600件を少し超える投稿)。一部のプラグインが原因である可能性がありますが、さまざまなプラグインとパーサーのオンとオフを切り替えるよりも、ビルドのパフォーマンスをプロファイリングするためのより良い方法があるはずです。

ビルド中の最小限の出力はヒントを与えません-すべての時間は単に「サイトのビルド」ステップに費やされます。jekyllスクリプトを実行してアイデアを得ることができると思ったので、サイトのルートディレクトリにruby-profあるようにjekyllスクリプトのローカルコピーを作成して実行しました。jekyll.rb

サイトは正常に構築されているように見えますが、プロファイラーは醜いコアダンプで窒息します。

私のサイトの構築プロセスをプロファイリングし、なぜそれがとても遅いのかを理解するためのよりインテリジェントな方法はありますか?

次に、コンパイル時間を短縮するための秘訣はありますか?(たとえば、に_cacheディレクトリが存在する_pluginsことはわかりますが、それが何をするのか正確にはわかりません--auto。Jekyllのフラグも表示されますが、特定のページを常に再コンパイルするように構成する方法がわかりません。変更されていない投稿を再コンパイルせずに、変更されていない(たとえば、Twitterプラグインを毎回再実行する必要がある)。

誰かが直接調べたい場合は、サイトのJekyllソースがGithubにあり、追加のgem依存関係についてのreadmeにいくつかのメモがあります。

0 投票する
1 に答える
1578 参照

ruby - rvm gemset を使用して ruby​​-prof でメモリ使用量をプロファイリングするトリックはありますか?

Ruby 1.8.7 を搭載した Mac OS X でメモリ使用量に対してruby​​-profを動作させようとしてきましたが、今のところうまくいきません。

RubyProf::MEMORYmodeには Ruby のパッチが適用されたバージョンが必要であることをドキュメントから理解しています。RVMを使用して、GC パッチを適用したバージョン ( Rails のドキュメントで参照されていることがわかりました) をインストールしようとしました。

このコマンドの出力に基づくと、すべてが良好に見えます。コンソール出力に「Applying patch 'ruby187gc'」とはっきりと表示されます。

RVM gemset を使用しようとすると、問題が発生するようです。これをテストするために、次のスクリプトを作成しました。

このスクリプトrvm use 1.8.7 --patch ruby187gcの前に . ただし、のようなものを試すとrvm use 1.8.7@gemset_name --patch ruby187gc、出力ファイルにはすべての「nan」値が含まれます。

何を与える?パッチを適用したバージョンの Ruby を RVM gemset と一緒に使用するための特別なトリックはありますか? 問題は別の場所にありますか? 私は指を交差させており、誰かが非常によく似た問題に遭遇し、以前にこれを理解したことを願っています.

0 投票する
1 に答える
272 参照

ruby-on-rails - ルビー教授の負の時間?

私はruby-profに基づくrspec-profを使用して、かなり時間がかかる仕様をプロファイリングしています。しかし、彼らは否定的な時間を報告しているので、私が得た結果を解釈することはできません。rspec-prof / ruby​​-profを間違って使用していますか?これはバグですか?

0 投票する
2 に答える
646 参照

ruby-on-rails - Ruby-prof で Newrelic developermode が機能しない

newrelic_rpmRails 3.2 アプリで開発者モードをローカルで使用しています。これはうまくいっています。

インストールruby-profして、newrelic ローカル ダッシュボードで「プロファイリングを開始」をクリックし、アプリに戻ると、アプリのすべてのページで「#.

トレースバックの先頭数行:

何が問題なのかを解決する方法はありますか?

0 投票する
2 に答える
1195 参照

ruby - ruby-prof に Ruby コア / 標準ライブラリ / gem メソッドを無視させるにはどうすればよいですか?

Ruby プロファイリングは初めてですruby-profが、人気のある選択肢のようです。gem をインストールしてプログラムを起動しました。

ただし、すべての Ruby コア メソッドと標準ライブラリ メソッドのプロファイリング データ、およびその他の gem が含まれているため、出力は非常に詳細です。たとえば、上位 3 行は次のとおりです。

私のプログラムが文字列と配列を多く扱っていることはすでに知っているので、それは私にとって少しでも役立つ情報ではありません。コード内のホットスポットだけを気にします

-p graph_htmlや など、他のプリンタ モードをいくつか試しまし-p call_stackたが、すべて同じ問題が発生します。

ruby-profメソッドの削除と簡素化をサポートしていることがわかります。

しかし、私が本当に欲しいものを取得する明白な方法はないようです。これは、私のコードのみのデータをプロファイリングすることです。つまり、Ruby コア/stdlib からのコード内で経過した時間と、他の宝石は私の内部で経過した時間としてのみカウントされます。コード。

foo自分のコードに、何千回も呼び出されてパフォーマンスが低下しているためにパフォーマンスのボトルネックになっているメソッドがあることがわかったら、自分のコードとその中で呼び出されたコア/ライブラリ コードの間の経過時間の内訳を確認したいだけです。その特定の方法。

なぜこれが標準機能ではないのか理解できません。誰もがやりたいことだと思うからです。最初に自分のコードをプロファイリングし、最適化するものがなくなったら、gem の最適化を開始する可能性があります。 Rubyコア/ stdlibを使用することもできます。私は何が欠けていますか?

0 投票する
1 に答える
312 参照

ruby - Ruby-prof のグラフ プリンターと自己による並べ替えを使用すると、合計パーセンテージが 100% を超えます

私が走れば

私のgraph.txtの最初の数行は次のようになります。

これは、私のスクリプト aggregate.rb に固有のものではないと思います。したがって、簡潔にするためにソース コードを省略します。

質問: %total 列に 100% を超えるパーセンテージがあるのはなぜですか? グラフプリンターで自己ソートは出来ないのですか?これはバグですか、それとも何かを見落としましたか。大変助かります。

ありがとう!

0 投票する
4 に答える
19681 参照

ruby-on-rails - Ruby コードのメモリ リークを追跡するにはどうすればよいですか?

質問

rake タスクでメモリ リークをデバッグしています。次の呼び出し履歴を確認したい:

  • 生き物
  • それらのオブジェクトを最初に割り当てたオブジェクトまたはライン

これは ruby​​-prof で可能ですか?

そうでない場合、どのツールを使用すればよいですか?

設定

宝石

レーキタスク

  • DATA LOAD INFILE および Active Record オブジェクトを使用して、CSV ファイルを MySql データベースに直接インポートします。

私が試したこと

モードを試してみた

  • RubyProf::割り当て
  • RubyProf::メモリ

ドキュメントに記載されているのは次のとおりです。

RubyProf::ALLOCATIONS オブジェクト割り当てレポートは、プログラム内の各メソッドが割り当てるオブジェクトの数を示します。

RubyProf::MEMORY メモリ使用量レポートは、プログラム内の各メソッドが使用するメモリ量を示します。

これは、ruby-prof が生きているオブジェクトだけでなく、オブジェクトの総割り当てを報告するだけであることを意味します。

Ruby-MassBloat Checkを試しましたが、どちらもやりたいことができないようです。Ruby-Mass も何らかの理由でメモリ内の FactoryGirl オブジェクトを見つけてクラッシュします...

0 投票する
2 に答える
1462 参照

ruby-on-rails - Rails アプリの ruby​​-prof を使用して、KCacheGrind のコール ツリー プロファイリングをどのように出力しますか?

ドキュメントによると、Rails アプリをプロファイリングできます http://ruby-prof.rubyforge.org/

これをconfig.ruに追加しました

ただし、次のファイルのみを出力します

出力は完全に理解できません。そこで、Windows 用の QCacheGrind をダウンロードしました。 http://sourceforge.net/projects/qcachegrindwin/?source=推奨

これらのファイルは読み取られません。ruby-prof docs には、KCacheGrind ファイルを生成できると書かれています

RubyProf::CallTreePrinter - KCachegrind と互換性のあるコール ツリー レポートを作成します。

しかし、Rails でそれを行う方法については触れていません。RubyProfのページを見てみましたが、空っぽでした。 http://ruby-prof.rubyforge.org/classes/Rack/RubyProf.html

ルビー 2.0.0、レール 4.0.3