2

複雑なビューでオブジェクトをドラッグしているときに、私のアプリの 1 つに 2 ~ 10 秒の遅延が発生することがあります。場合によっては、待機カーソル (回転する死のピザ) が表示されるのに十分な遅延が発生することがあります。

Time Profiler は、オブジェクトがドラッグされたときにビューを更新するための予想される描画呼び出しだけを明らかにします。(これは多くの計算ですが、一時停止中と一時停止の間のプロファイルに明らかな違いは見られません。)

メモリ プロファイラは、一時停止について特別なことは何も明らかにしません。割り当ては、ドラッグ全体でフラットに見えます。漏れはきれいです。(私の最初の想定では、自動解放されたオブジェクトをスピンオフしすぎていたのですが、それは問題ではないようです。)

アクティビティ モニターは、ドラッグ中、すべての再描画のために 1 つのコアをほとんど使い果たしていることを示しています。それが私が期待していることです。

次にどこを見るべきかについてのアイデアはありますか?

4

1 に答える 1

0

うーん。おそらく、'Record Waiting Threads' を有効にして Instruments.app を実行してみてください。これにより、コードが待機している場所と実行中の場所が表示されます。セマフォに座っているか、このモードで表示される IO- を実行している可能性があります。

楽器

于 2013-03-06T09:17:59.263 に答える