1

私はそのような質問をするのをためらっていました。

位置が高すぎるかどうかメタで聞きたかったのですが、ためらいました...そしてまあ...答えが必要です。ですので、問題があれば削除します。

私はVery Sleepyに取り組んでいます。これは、アプリケーションのホットスポットとロックの問題を検出するのに役立つコード プロファイラーです。

私が知りたいのは、Very Sleepy 分析で一部のライトが緑色で一部が黒色である理由です。これは、分析のサンプル画像へのリンクです: http://www.codersnotes.com/images/3.png

私の推測では、緑色のものはシステム コールであり、黒色のものは「プロセス」コールのみです。

4

1 に答える 1

1

Very Sleepy はオープン ソースであるため、ソース コードは入手できますが、ドキュメントはほとんどまたはまったくありません。それほど多くはありません。5 メガバイトを超えるダウンロードのほとんどは、実際にはコードではありません。

src/wxProfilerGUI/CallstackView.cpp ソース コード ファイルをのぞいてみると、シンボルisCollapseFunctionまたはisCollapseModuleメンバーが true の場合に緑色でペイントされているように見えます。これらのシンボルを検索すると、同じディレクトリにある database.cpp に移動します。

    sym->isCollapseFunction = osFunctions.Contains(sym->procname.c_str());
    sym->isCollapseModule = osModules.Contains(sym->module.c_str());

そのため、シンボルがオペレーティング システムの機能またはモジュールの場合は緑色になります。これは正確に見えますが、スクリーンショットで緑色の記号は実際には Windows DLL 関数です。そこから得られるヒントは、その関数を最適化しようとしても意味がなく、変更できないということです。

于 2013-05-29T17:31:16.363 に答える