私はNSImageViewを使用して、各フレームの長さが 20 ミリ秒である約 80 フレームのアニメーション GIF を表示しています。NSImageViewは、GIF アニメーションを「箱から出して」すぐに表示できますが、問題は、(私のコア i5 proc で) 連続して約 10% の CPU を必要とすることです。Instrumentsは、GIF のデコードに多くの CPU 時間を費やしていることを示しています。
より効率的にするために、次のことを試しましたが、あまり成功しませんでした。
フレームをQTMovie内に配置して再生します (私のプロセスに 4% を使用し、ムービーを再生する QTKitServer プロセスにさらに 15% を使用します)。
CGContextDrawImageを使用してビューに直接描画する(CPU 使用率が ~5%) - GIF のフレームはエクスポートしませんでした。30x30px の .png からCGImageRefを作成しただけです。
他に何を試すべきかわかりません。NSImageViewをサブクラス化し、何らかの形で画像をキャッシュするのは良い考えのように思えますが、残念ながら、私は Cocoa の初心者です...どんなアイデアでも大歓迎です。ありがとう!