본문 바로가기
[iOS Study] 디버그 도구 [iOS Study] 디버그 도구 출처 : 아론 힐리가스의 iOS 프로그램 -Xcode 5 CPU와 메모리 사용량에 관한 정보를 한눈에 제공하는 디버그 측정기(debug gauges) 가 있다. -디버그 네비게이터는 프로그램 실행 중에(실시 정지나 중단된 경우가 아닌) CPU 와 메모리 측정기를 보여준다. -이 측정기들은 실제 프로그램이 실행 중인 하드웨어를 기반으로 측정한다.Mac 은 iOS 장비보다 가용 램이 훨씬 많고 CPU 코어도 대개 더 많다.따라서 iOS 시뮬레이터에서 프로그램을 실행하면 CPU 와 메모리 사용량은 매우 작게 나타날 것이다. -CPU 디버그 측정기는 편집기 패널에 CPU 리포트를 표시한다. Percentage Utilized 해당 장비가 가진 CPU 코어 수에 상대적인 CPU .. 2016. 2. 26.
[iOS Study] ARC 를 통한 메모리 관리 [iOS Study] ARC 를 통한 메모리 관리 출처 : 아론 힐리가스의 iOS 프로그래밍 - 메소드나 함수가 실행되면 스택(stack)이라고 하는 메모리 영역의 일부가 할당된다. 이 할당된 메모리 공간을 프레임(frame)이라고 한다. -프로그램을 시작하고 main() 이 실행되면 main() 의 프레임이 스택에 들어간다.main() 이 다른 메소드(또는 함수)를 호춣하면 그 메소드의 프레임은 스택의 꼭대기에 들어간다. 각 메소드나 함수가 끝날 때마다 해당 프레임은 스택 꼭대기에서 즉시 빠져나와 사라진다.그 메소드가 다시 호출되면 새 프레임이 할당되고 스택에 들어간다. - ARC(자동 레퍼런스 카운팅, Automatic Reference Counting) 가 프로그램의 메모리 관리를 대신해준다. - .. 2016. 2. 15.
[Effective Java] 쓸모 없는 객체 참조를 제거하자. [Effective Java] 쓸모 없는 객체 참조를 제거하자. - 자바와 같이 가비지 컬렉션을 자동으로 해주는 언어는 메모리 관리를 따로 해줄 필요가 없다고 생각하기 쉬우나, 이는 틀린 생각이다. GC 의 원리에 대해 정확히 이해하고 메모리 관리를 해주어야 한다. 다만 그 메모리 관리하는 범위가 C, C++ 과 같은 GC 가 없는 언어들에 비해 더 간단할 뿐! - 자바에서도 메모리 누출(memory leak)이 쉽게 발견된다. 메모리 누수가 생기면, 성능저하의 형태로 서서히 나타난다. GC 작업이 증가하거나, 메모리 할당과 회수 횟수가 빈번해지기 때문이다. 심하면 디스크 페이징 현상이 나타나기도 하고, 아주 극단적으로는 OutOfMemoryError 가 발생한다. 메모리 누수의 무서운 점은, 특정 객체.. 2016. 1. 4.
반응형