3


非常に遅い (キャッシュされていないページで約 60 秒) foswiki のインストールがあります。http://foswiki.org/Support/NYTProfDebuggingに従って、次のコマンドを使用して、NYTProf でインストールのプロファイルを作成しようとしました。

> sudo -u www-data NYTPROF="file=/tmp/nytprof.out:addpid=1:endatexit=1" perl -wTd:NYTProf view -topic Some.Topic -username MyUsername

141プロファイラーでスクリプトを実行すると、スクリプトが終了コードで失敗します。プロファイラー(リモートd:NYTProf)なしで実行すると、正常に終了し、出力が生成されます。

プロファイリングの後、/tmp ディレクトリに一連のプロファイル ファイルを取得しました。

nytprof.out.[841-1860]

しかし、これらのファイルをマージしようとすると、最初のファイルでエラーが発生します。

> nytprofmerge nytprof.out.*
Profile data incomplete, inflate error -5 ((null)) at end of input file, perhaps the process didn't exit cleanly or the file has been truncated  (refer to TROUBLESHOOTING in the documentation)

最初のファイルなしでファイルをマージできますが、結果は役に立たず、87回Foswiki::Sandbox::CORE:openの呼び出ししか表示されず、それだけです。

有効なプロファイリング結果を得るチャンスはありますか? または、この場合に使用できる他のツールはありますか?

4

2 に答える 2

2

NYTProfiler を動作させられない理由はわかりませんが、Foswiki 2.0.2 でのいくつかのパフォーマンスの問題を把握するために NYTProfiler を使用しましたが、Foswiki 2.0.3 では部分的に対処されています。いくつかの問題が発生していますが、主な原因の 1 つは、内部での UNICODE への変換と、5.20 より前のバージョンの perl でのいくつかの Perl 正規表現の問題です。https://rt.perl.org/Public/Bug/Display.html?id=66852

Foswiki 2.0.3 では、次のパフォーマンスの更新が行われました。

  • 一部の頻繁に呼び出される内部関数を正規表現から index() に変更しました
  • EditRowPlugin を変更して、レンダリング モジュールで正規表現による処理を必要とする HTML を少なく生成しました。
  • トピックの過度の再読を減らすために、その他のいくつかの改善を行いました。

2.0.3 があまり役に立たない場合は、問題のあるページに大きなテーブルが含まれていないかどうかを確認してください。その場合は、EditRowPlugin を無効にして、EditTablePlugin を使用してみてください。

それ以外に、IRC の公式サポート チャネル #foswiki ( http://irclogs.foswiki.org/ ) を試すことができます。

于 2015-11-23T20:00:25.517 に答える
1

プロファイラーでスクリプトを実行すると、終了コード 141 でスクリプトが失敗します。

これは、プロセスが SIGPIPE シグナルを受信したことを示しています。sigexitオプションが役立つ場合があります

プロファイラーなしで実行すると...正常に終了し、出力が生成されます。

使用してsudoいるため、権限が問題になる可能性がありますが、それは単なる推測です。SIGPIPE が受信されているかどうか、およびその理由を確認するには、さらに深く掘り下げる必要があります。

私はfoswikiに精通していません。おそらく、そのコミュニティの誰かがもっと役立つかもしれません。

于 2015-11-12T14:23:59.117 に答える