0

main() 함수가 비어있는 프로젝트가 있습니다.프레임 워크가 macOS에서 메모리 누수의 원인이 될 수 있습니다.

내 프로젝트에 프레임 워크를 연결하는 것만으로 (예 : ImageIO.framework) Instruments는 응용 프로그램을 종료 한 후 해제되지 않은 메모리 할당을 나열합니다.

Xcode Instruments

1) 나는 애플 프레임 워크에 의해 만들어진 악기 영구 메모리 할당은 숨길 수, 그래서 난 내 메모리 누수에 집중 할 수 있습니까?

2) Apple이 나중에 OS를 정리하는 것을 알고 있기 때문에이 의도가 있습니까?

답변

1

1과 관련하여 할당 유형 (All Heap이 아닌 All Heap & Anonymous VM)에서 "All Heap allocation"을 선택하십시오.

2에 대해서 - 심지어 애플은 약간의 메모리 누수가 있습니다.하지만 네, 애플의 종료 후 해제됩니다.

1

1) 프레임 워크에서 만든 객체의 소유자가 될 수 있습니다. Instruments User Guide, Find Memory Leaks을 읽으십시오.

2) 예. NSColorPanel과 같이 재사용 할 수있는 싱글 톤 및 객체는 할당 해제되지 않습니다. 또한 정리하지 않고 앱을 종료하는 것이 더 빠릅니다. 예를 들어, NSManagedObject의 설명서에서 : "핵심 데이터가 dealloc이 모든 시나리오에서 (예 : 응용 프로그램이 종료 될 때) 호출되는 것을 보장하지 않습니다".

관련 문제