Sharkは初めてですが、時間サンプルを1つの特定の方法に絞り込むことができるかどうか疑問に思っていました。
そのためだけに、すべてのNSArray(またはサブクラス)インスタンスのメソッド'count'の呼び出しで使用されたリソースの量を知りたいとしましょう。
Sharkは初めてですが、時間サンプルを1つの特定の方法に絞り込むことができるかどうか疑問に思っていました。
そのためだけに、すべてのNSArray(またはサブクラス)インスタンスのメソッド'count'の呼び出しで使用されたリソースの量を知りたいとしましょう。
時間プロファイルグラフをボトムアップで表示し、ライブラリで費やした時間を呼び出し元に請求すると、必要なものが得られるはずです。これにより、-countのために費やされた時間(つまり、そのメソッドの実行と、メソッドがそのジョブを実行するために必要なすべての時間の両方)を確認でき、メソッドを呼び出している場所を確認することもできます。-countに多くの時間を費やす理由は、時間がかかるためではなく、頻繁に行うためである可能性があります。
少なくとも機能レベルで費やされる時間は、まさにインスツルメンツが提供するものです。DTrace を使用すると、さらに深く掘り下げることができます。たぶん、これに関する私のブログ投稿をチェックしてください。うまくいけば、問題が解決するはずです。
たとえば、 count呼び出しのメモリ消費量を出力する DTrace スクリプトを簡単に作成できます。
乾杯、トルステン
cmd-f を押してシンボルを検索できます。「自動展開」チェックボックスがオンになっていることを確認して、ツリーに下に移動します。Window -> Show Advanced Settings をオンにする必要があるかもしれません。
シンボルを見つけたら、それを右クリックすると、いくつかのオプションが表示されます。
シンボルのフォーカス: これにより、選択したシンボルとその下のシンボルへの呼び出しのみに絞り込むことができます
Retain Callstacks with: これにより、シンボルへのすべての呼び出しが表示され、他のすべてが除外されます
完了したら、右クリックして「すべてのフォーカスを外す」または「すべてを元に戻す」ことができます。これらのコマンドは、詳細設定の「コールスタック データ マイニング」セクションを変更することになります。それでだまされてください。