0

私は、AVCaptureVideoDataOutputとAVCaptureStillImageOutputで設定された超基本的なAVCaptureSessionを持っています。 AVCaptureVideoDataOutputにはバッファデリゲートがありません。 AVCaptureSessionの標準的な問題を設定するだけで、何の工夫もなにもありません。私がアプリケーションをコンパイルして約10分間そこに置くと、利用可能なメモリは毎分1メガバイトほど低下します。私は72MBの無料でアプリを起動して、それを私の机の上に座らせた後、私は無料のメモリが33MBの低さになるのを見ました。iOS SDK:AVCaptureSessionにAVCaptureVideoDataOutputを追加すると、ゆっくりとメモリが無期限にリークします。

私がAVCaptureVideoDataOutputをセッションに追加する部分をコメントアウトすると、使用可能なメモリは約70-72mbのままです。

私はセッションからAVCaptureVideoDataOutputを削除するボタンを設定し、ボタンをタップした後、利用可能なメモリは、アプリケーションが最初に実行されたとき(〜72MB)に直ちにジャンプします。誰かがこれを見て回避策を知っていますか?私は私のiPhoneと最新のベータSDKでiOS 5.0を持っています。

編集:


... 

NSNumber *rgbNum = [NSNumber numberWithInt:kCVPixelFormatType_32BGRA]; 
NSDictionary *videoSettings = [NSDictionary dictionaryWithObject:rgbNum forKey:(id)kCVPixelBufferPixelFormatTypeKey]; 

dataOutput = [AVCaptureVideoDataOutput new]; 
[dataOutput setAlwaysDiscardsLateVideoFrames:YES]; 
[dataOutput setVideoSettings:videoSettings]; 
_videoDataOutputQueue = dispatch_queue_create("VideoDataOutputQueue", NULL); 
[dataOutput setSampleBufferDelegate:self queue:_videoDataOutputQueue]; 
dispatch_release(_videoDataOutputQueue); 

if ([session canAddOutput:dataOutput]) { 
    [session addOutput:dataOutput]; 
} else { 
    NSLog(@"couldn't add av data output"); 
} 
... 

違いを確認していないようバッファデリゲートをコメントアウト:ここAVCAptureVideoDataOutputを追加するコードです。

ちょうどこれをもう一度試して、それは〜70mbから6分以内に〜54mbまで無料でした。 。私はあなたがこの場合は、現在の使用可能なメモリについてはあまり気にしなければならないか分からないのiOSは、それ自身の決断に何かをキャッシュしたり、いくつかの目的のために確保したメモリを保持してもよい:(

+0

フレームワークに実際のリークがあり、コードに悪影響を及ぼすと思われる場合は、バグレポートを提出する必要があります。また、Apple Devフォーラムでディスカッションを開く必要があります。 –

+0

ありがとうございましたJasonさん、あなたはこれを気づいているのか、一時的な回避策があるのか​​疑問に思っています。 – taber

答えて

1

どうやらこの問題を回避する方法はありません - アップルのバグを提出してください

編集: この質問は少し古いですが、誰にも役立ちます:私は100%肯定的ではありませんが、これを見ていたのはゾンビオブジェクトをオンにしたためです。 Xcodeでゾンビオブジェクトが有効になっていないことを確認してください。 [Edit Scheme ...]を選択し、[Diagnostics]タブを選択します。

+0

ありがとう。私はこの1つの上に私の心を失っていた。 –

1

メモリリークを確認するには - 。それはです。より良いリークトラッカーでプロファイラを使用していますが、単に現在のメモリが利用できないために

また、それは解放のiOS SDK上での動作を確認することをお勧めします - それはベータ版ですので、ベータ版ではいくつかの問題を持っていることがあります...

+0

真実ですが、この問題は私のアプリがクラッシュする前に見られました。私はAVCaptureVideoDataOutputの問題点を特定しました。プロダクションのiOS 5.0で試してみましたが、そこにも同じように表示されます。 :( – taber

+0

例えば、あなたが多少メモリ不足の状態になっている場合(たくさんのアプリケーションが開かれているなど)、おそらく~20MBが利用可能で、バッファや何でも処理する必要があります。 – taber

+0

おそらく、低メモリをシミュレートし、実際にAVCaptureVideoDataOutputで何が起きているかを確認したいと思うかもしれません.iOSは非常に洗練された方法を使ってメモリを最適化しているようです - 私たちがそれを予測することができるかどうかわからない... – AlexeyVMP

関連する問題