을 종료, 나는이 간단한 콘솔 응용 프로그램을 만들었습니다 Apple 's Instruments,이 코드를 프로파일 링 할 때 어떤 누출도 볼 수 없습니다. 이것은 iPerson이 삭제되지 않았음에도 불구하고 있습니다.악기 프로그램이 데모를 위해서
2
A
답변
0
이 악기는 미리 정의 된 주파수에서 스냅 샷을 수행 누출. 기본적으로이 값은 "매 10 초마다"입니다. 프로그램은 10 초 전에 완료됩니다. 따라서, 누출은 절대로 수집되지 않습니다. 따라서 누설이 발견 되려면 iPerson
이 범위를 벗어난 후에 실행을 일시 중지해야합니다. 또한 포인터가 여전히 스택이나 레지스터에서 참조되는 동안 sleep
을 추가하면 누출이되지 않습니다.
0
Mac 개발자 라이브러리에서 Tips for Improving Leak Detection을 볼 수 있습니다.
Cppcheck C/C++ 코드 용 정적 분석 도구가 도움이 될 수도 있습니다. 귀하가 제공 한 예를 들어, 발견 :
#>cppcheck so_code.cpp
Checking so_code.cpp...
[so_code.cpp:15]: (error) Memory leak: iPerson
1
나는 그것을 밖으로 일했다 :
- 나는 1 초에 스냅 샷 간격을 설정했다.
- 프로파일 링이 완료된 릴리스 버전에 대한 사용을 중지 (없음으로 설정)해야했습니다. 그리고 저스틴의 답변과 this question에 따라 는
, 정말처럼 내 코드를 수정했습니다 :
#include <iostream>
#include <unistd.h>
class Person {
public:
int mAge;
};
void CreateLeaks()
{
// All three lines will generate a leak.
Person *iPerson = new Person();
iPerson = new Person();
iPerson = new Person();
}
int main(int argc, const char * argv[])
{
CreateLeaks();
sleep(2);
return 0;
}
여전히 계속 몇 가지 이상한 일이 있습니다. 예를 들어 CreateLeaks
안에 sleep(2)
을 추가하기 시작하면 Instruments는 sleep
명령을 넣는 위치에 따라 모든 누출을 포착하지 않습니다. 이상
관련 문제
- 1. 악기 + UIAutomation는
- 2. 악기 이해하기
- 3. 악기 - #living + arc
- 4. 악기 막대가 사라졌습니다.
- 5. 악기 누출을 해석하는 방법
- 6. 활동 모니터 악기 ios
- 7. 음악 파일의 악기 식별
- 8. iPhone : 시간 프로필 악기
- 9. 오디오 유닛 악기 + 샘플러
- 10. 악기 용 에뮬레이터 프로그래밍?
- 11. 메모리 부족, 악기 할당
- 12. 새로운 코드베이스에 익숙해지기 위해서
- 13. 위해서 orientationchange의 JQM - 안드로이드
- 14. 촉매 공부를 위해서
- 15. 위해서, FileOpenService은 NoClassDefFoundError를
- 16. 양식 모음 위해서, addXXX
- 17. 위해서 stripslashes가 작동하지
- 18. PHP를 위해서 stripslashes
- 19. GAE 데모를 사용하는 방법?
- 20. 는 메모리 누수 점검을위한 악기 이해 - 아이폰
- 21. iPhone 용 핵심 데이터 악기
- 22. 악기 누출/이상한 메모리 누수
- 23. 크로매틱 악기 튜너를위한 강력한 알고리즘?
- 24. iOS - iPad 기반 음악 악기
- 25. 악기 (누수)가 작동하지 않습니다
- 26. 멀티 악기 MIDI 파일 재생
- 27. 명령 줄에서 시작하지 못하는 악기
- 28. 가져 오기 데이터 위해서 var_dump
- 29. 모든 노드 목록을보기 위해서 표시
- 30. OraOLEDB를 사용하기 위해서 무엇을 설치해야합니까?
내 컴퓨터에서 valgrind가 "확실히 분실 : 4 블록 1 블록"을 올바르게 감지합니다. .. –
어떤 프로그램을 사용하고 있습니까? 하나는 누수를보기위한 도구조차 필요하지 않습니다 ... – MFH
@MFH - 이것은 실제로 제가보기 싫은 물체에 대해 아무것도 얻지 못한다는 사실을 보여주는 간단한 사례입니다 실제 문제는 다소 큰 프레임 워크와 테스트 응용 프로그램을 포함합니다. 테스트 응용 프로그램에서 삭제하지 않는 개체에 메모리 누수가 없기 때문에 이러한 응용 프로그램 개체에서 구성된 개체에 메모리 누수가 발생하지 않으며 문제가 수십 가지로 시연 될 수있을 때 나는 코드 라인의 hundrads를 제출하는 요점을 실제로 볼 수 없다. – Izhaki