3

OS X 10.7.5 の XCode 4.5 で動作する簡単なテスト Cocoa アプリケーションがあります。アプリケーションには単一の NSWindow が含まれています。ウィンドウのコンテンツ ビューはカスタム ビューであり、その drawRect メソッドはイメージを (非常に迅速に) 生成し、CGContextDrawImage を使用してビューに描画します。スケーリングやその他の操作はありません。

UpTime() 呼び出しを使用して描画のタイミングを計っています。描画操作は最初はかなり高速で、約 5 ミリ秒です。ただし、ライブ サイズ変更中は、CGContextDrawImage が返されるまでに約 1 秒 (1020 ミリ秒程度) かかります。10.7.5 を実行している低速のコンピューターと 10.6.8 を実行している高速のコンピューターで試してみました。小さなウィンドウと大きなウィンドウがあり、カーソルが表示されている場合と表示されていない場合があります。いつも同じ結果。描画中の実際の CPU 使用率は非常に低くなります。システムがライブのサイズ変更中に再描画を抑制しているように感じますが、それ以外のときはありません。

四角形を単色で塗りつぶすだけでは、この効果は得られません。

何が起こっているのか分かりますか?

4

0 に答える 0