2012-05-12 1 views
0

저는 이론적으로 무기한으로 작업해야하는 프로젝트를 수행해 왔습니다. 즉, 프로그램을 시작하고 전원 공급 장치에 Ipad를 연결하면 몇 일, 몇 달, 몇 년 동안 작동합니다. 나는 무엇을하더라도 메모리는 점차적으로 할당되지만 해제되지는 않습니다. 계측기 누출은 메모리 누수가 없음을 나타내지 만 계측기 할당 및 활동 모니터 메모리는 점진적으로 할당되어 증가하고 커집니다.무한히 실행되는 응용 프로그램, 특히 무한 비디오 재생에서 메모리 누수가 발생했습니다.

ViewController.h

@interface ViewController : UIViewController 
{ 
    MPMoviePlayerController *player; 

} 

ViewController.m

: 그것은 특히 비디오 간단한 예 (엑스 코드 4.3, 아니 ARC)를 재생할 때, 발생하는 곳이 많이 있습니다
@implementation ViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    player = [[MPMoviePlayerController alloc] initWithContentURL: [NSURL URLWithString:@"http://mysite.com/movie.mp4"]]; 

    player.view.frame = CGRectMake(400, 500, 360, 240); 
    [self.view addSubview:player.view]; 
    player.controlStyle = MPMovieControlStyleNone; 
    player.repeatMode = MPMovieRepeatModeOne; 
    [player play]; 
} 

- (void)viewDidUnload 
{ 
     [player stop]; 
     [player.view removeFromSuperview]; 
     [player release]; 
     [super viewDidUnload]; 
} 

- (void)dealloc 
{ 
    [player release]; 
    [super dealloc]; 
} 

이 간단한 응용 프로그램은 비디오 재생을 반복하는 것만으로는 아무 것도하지 않습니다. 3 분마다 평균 100kb가 할당됩니다. 매일 - 평균 40MB. Instruments Activity Monitor로 프로파일 링하고 있습니다. 시간이 지남에 앱이 죽습니다. 뭐가 잘못 되었나요? 왜 비디오가 보일 때 (루프 재생) 새 오브젝트를 초기화하지 않고 메모리가 커지는 이유는 무엇입니까?

+0

하위 뷰를 제거 하시겠습니까? ARC를 사용하고 있습니까? '아니요'인 경우 언제 [플레이어 발표]를합니까? 빌드 및 분석 (있는 경우)에서 발견 된 문제를 해결하십시오. [힙샷 분석] (http://www.friday.com/bbum/2010/10/17/when-is-a-leak-not-a-leak-using-heapshot-analysis-to-find- 바람직하지 않은 메모리 증가 /). –

+0

예, viewDidUnload에서 제거합니다. 나는 ARC를 사용하지 않는다. viewDidUnload 및 dealloc에서 릴리스됩니다. 분석은 "No issues"를 보여줍니다. 나는 응용 프로그램을 시작하고 플레이어를 초기화하고 시작하며 아무것도하지 않고 그냥 비디오를 보면서 반복 재생 (MPMovieRepeatModeOne - 무한 재생)입니다. 나는 그 신청서를 끄지 않는다. –

답변

0

입력 스트림을 미리로드하는 데 사용되는 캐시는 앱이 다시로드되거나 데이터가 누적되는 경우에만 자동으로 새로 고침됩니다. 앱을 닫고 다시 열면 메모리 할당이 수행됩니다. 기본적으로 메모리 누수.

또한 사용 후 MPMoviePlayerController 알림을 제거해야합니다. 또한 플레이어 개체를 릴리스해야합니다.

[player.view removeFromSuperview]를 어디에서 사용하고 있습니까?

+0

예, 저는 FlashSuperview를 제거하고 플레이어를 릴리스하지만 비디오를 볼 때 메모리가 커졌습니다. –