問題タブ [devel-nytprof]

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 に答える
526 参照

perl - コードに診断がないのに、Perlがdiagnostics.pmをコンパイルするのはなぜですか?

CGIプログラムのDevel::NYTProf v4の出力を見ていたとき、レポートのソースコードファイルに出くわしました—排他的な時間と名前の順に並べられています。diagnostics.pm

Diagnostics.pm

最初は、なぜそれが本番コードに含まれるのか理解できませんでした。レポートを詳しく調べてみると、によって呼び出されていることがわかりましたmain::BEGIN@17。これは、次の行です。

したがって、これが原因のようです。回線を削除するno diagnosticsと、通話が切れ、実質的に約300ミリ秒の時間を節約できました。

perldocusenoがキーワードについて言っていることは次のとおりです。

使用によってインポートされた意味をインポート解除する対応するno宣言があります。つまり、インポートの代わりにunimportModuleLISTを呼び出します。インポートがVERSIONの場合と同じように動作するか、リストが省略または空であるか、インポートされていないメソッドが見つかりません。

だからここに私の実際の質問があります:私が呼び出すとno diagnostics、それがunimport編集される前に実際にロードされると仮定して正しいですか?

の呼び出しはno diagnosticsこのコードに似ていますか?

結果として、インポートされたことのないものを単にアンインポートするのは悪い考えですか?それは実際に最初にロードされるからです。

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

perl - fork/exec するプログラムで Devel::NYTProf を使用する

まずexport PERL5OPT=-d:NYTProf、デバッグ オプションが子プロセスに継承されるように、コマンド ラインから実行します。次に、連絡先の Perl プログラムを起動します。フォークしてデーモン プロセスになり、別の Perl プログラムtable_managerの 9 つのインスタンスをフォーク/実行します。(exec は のようになりexec /path/to/perl /path/to/table_managerます。) この時点で、nytprof.out という 10 個または 11 個の新しいファイルが表示されます。んんん。予想どおり、今までフォークされたプロセスごとに 1 つ。

クライアントは、contactd which fork/ execs slaveに接続します。スレーブは、9 つ​​のテーブル マネージャーに接続し、クライアントからの要求を受け入れて、9 つのテーブル マネージャーに渡します。

通常のクライアント接続を実行した後、すべてのサーバー プロセスをシャットダウンしました。nytprofmergeを実行して、さまざまな nytprof.out をマージしますnnnnファイルをnytprof-merged.outにコピーしてから実行しnytprofhtml -f nytprof-merged.out --openます。

HTML レポートが開いたとき、連絡先以外は何も言及されていません。最上位のサブルーチンは、ほとんどが BEGIN ブロック、importAUTOLOAD ... 初期実行のものです。

これにより、NYTPROF(複数の nytprof.out ファイルに基づいて) フォークを通過しているが、何らかの理由で実行された Perl プログラムのプロファイルを継続していないと思います

MacOSX 10.8.2 で perl 5.16.1 と最新の Devel::NYTProf を実行しています。

私がしていないことに関する提案はありますか?

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

perl - タイムアウトする Perl CGI スクリプトのプロファイリング

Perl CGI アプリケーションがタイムアウトすることがあり、Apache によって強制終了され、504 Gateway Time-outエラーがブラウザに送信されます。NYTProf を使用してこのアプリケーションのプロファイルを作成しようとしていますが、プロファイル データを読み取ることができません。

sigexit=1NYTProf オプションを使用しています。問題を再現する最小限の CGI スクリプトを次に示します。

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

perl - NYTProf html レポートの読み方

nytprofhtmlによって生成されたDevel::NYTProfレポートについて完全に混乱しています。古いバージョンの NYTProf 1.90 を使用しています。私はそれが非常に古いバージョンであることを知っていますが、いくつかの理由でそれを使用する必要があります.

したがって、これらの HTML レポートは次のようになります (特定の *.pl ファイル レポートを見ると):

新しいバージョンの nytprofhtml からのレポートを見たことがないので、同じように見えるかどうかはわかりません。

私の場合、この行はプログラム全体で最も遅い部分です(小さなプログラムではありません)。だから私の質問は、この「};」のようなステートメントをどのように使用できるかです。より複雑なステートメントを含むプログラムの中で最も遅い部分になります。NYTProf の報告を誤解していると思います。

私の質問がわかりにくい場合は、これらのレポートの各列の定義を教えてください。これは役に立ちますか? これは大いに役立ちます。

特に何に興味がありStmtsます。平均。私は推測していますが、推測したくありません!

前もって感謝します。

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

perl - プロファイリング時とプロファイリングなしの場合の NYTProf 実行時間

ただ、確認したかっただけです。

プログラムの実行時間を測定する小さなpythonスクリプトがあります。外部プログラムが開始する前に時間を節約し、プログラムの実行が終了した後の時間からこの値を差し引きます。

このスクリプトを perl スクリプトで実行すると、実行時間が 0.49263 になり、同じスクリプトを NYTProf で実行して nytprofhtml で生成された HTML レポートを調べると、実行時間が 0.80784 で、ほぼ 2 倍になっていることがわかります。

これでよろしいですか?プロファイリングは実行時間を増やすべきだと思いますが、それだけですか?

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

perl - perlスクリプトが埋め込まれたクラシックaspでNYTprofを実行する

perl スクリプトを実行する asp スクリプトをプロファイリングする必要があります。perlスクリプトを使用してクラシックaspでNYTprofを実行する方法はありますか?

上記はサンプルコードです(完全ではありません)

どんな助けでも大歓迎です。

ありがとう。

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

perl - perl での IIS Web サイトのプロファイリング

IIS で作業しなければならない Web サイトを Perl でプロファイリングしようとしています。ウェブサイトはを使用していCatalystます。私はDevel::NYTProfそれをプロファイリングするために使用しています。

デフォルトでは、プロファイル ファイルは に書き込まれ./nytprof.outます。perl の起動や引数の受け渡しに使用するコマンド ラインにアクセスできません ( use Devel::NYTProfperl ファイルでプロファイリングを有効にするために使用します)。

しかし、ファイルが見つかりません… どこにあるかわかりますか? NYTProf で自分の Web サイトをより適切にプロファイリングするにはどうすればよいですか?

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

perl - nytprof perl プロファイラーの実行時に「forkdepth」の値が「-2」のエラー メッセージが表示される

ただし、変数 NYTPROF を「forkdepth:1」に設定しました。フォークされた子のプロファイラー出力とその親を nytprofmerge しようとすると、次のようなメッセージが表示されます。

nytprof.13232.out.21321 の読み取りオプション「forkdepth」には、前の値「-1」とは異なる nytprof.13232.out.21321 の値「-2」があります。これはプロファイルに一貫性がないことを意味し、結果としてガベージが発生します。

誰かが修正を知っていますか、またはなぜこれが起こっているのですか?

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

perl - 複数のプロセスがある場合の NYTProf の使用方法

私のアプリケーションには、複数のプロセスがあります。最初に、.pl ファイルを実行して 1 つの Perl プロセスを開始します。次に、さらに 2 つの .pl スクリプトを呼び出して、2 つの新しいプロセスを作成します。使用方法 このようなコードをプロファイルします。NYTProf を実行し、結果をマージして html で開きましたが、関数に関連するすべてのプロファイリング情報が欠落しています。この種のアプリケーションをプロファイリングするための情報は役に立ちますか?