본문 바로가기
[ios] Memory Management Debugging. [ios] Memory Management Debugging. Enabling Guard Malloc -Guard Malloc 은 malloc library 의 스페셜 버전이다.Guard Malloc 을 enable 하면 debugging 도중에 표준 malloc library 를 Guard mallog library 로 변경한다. -Guard Malloc 은 여러 가지 기술을 이용해 메모리 에러가 발생하는 부분에서 crash 를 발생시킨다.여기서 여러 가지 기술이란 예를 들면 memoery allocation 을 Virtual memory page 에 기록하여 trace 하는 방식으로, 우연히 잘못된 메모리를 access 해도 작동하는 케이스를 방지해준다. -Guard Malloc 은 Simulator.. 2018. 2. 13.
[Objective-C] 기타 [Objective-C] 기타 출처 : OS X 구조를 이해하면서 배우는 Objective-C 부록A. Foundation 프레임워크 개요 * A.1 주요 클래스 개요 -NSCountedSet : 변경 가능한 집합의 클래스, 같은 객체를 여러 번 포함할 수 있다.NSOrderedSet, NSMutableOrderedSet : 여러 객체를 배열처럼 순서대로 저장하는데 같은 객체는 하나만 저장NSIndexSet, NSMutableIndexSet : 배열의 인덱스로 사용하는 음수가 아닌 정수를 요소로 하는 집합. NSSet 과 상속 관계가 없다. -NSProcessInfo : 프로세스에 관련된 다양한 정보를 취득한다. * A.2. 주요 프로토콜 개요 * A.3. 주요 함수와 형식 -CGRectGetHeight.. 2018. 1. 12.
[Effective Objective-C] #35 좀비를 이용해 메모리 관리 오류를 디버깅하라 [Effective Objective-C] #35 좀비를 이용해 메모리 관리 오류를 디버깅하라 출처 : Effective Objective-C -메모리 관리 오류를 디버깅하는 것은 매우 어려운 일이다.할당 해제된 객체에 메시지를 보내는 일은 예상할 수 있듯이 전혀 안전하지 못하다.그러나 때때로 그것은 동작하기도 하고 동작하지 않기도 하는데 이는 객체가 사용했던 메모리를 덮어 썼느냐에 달려있다.메모리가 재사용되었는지 알 수 있는 방법은 없다.그로 인해 크래시가 가끔 일어난다.메모리의 일부분만 재사용되는 경우도 있는데 이 때 객체의 일부분은 여전히 유효하다.또한 순전히 운으로 또 다른 유효한 살아 있는 객체가 메모리를 덮어쓸 수도 있다.이 경우 런타임은 새로운 객체에 메시지를 보낼 것이고 객체는 응답을 할 .. 2017. 9. 29.
[Effecitve Objective-C] #1 Objective-C 의 기원과 친숙해져라. [Effecitve Objective-C] #1 Objective-C 의 기원과 친숙해져라. 출처 : Effective Objective-C -오브젝티브-C 는 매우 동적인 언어이다.언어의 기원이 스몰토크(Small Talk) 이다.대다수 언어가 컴파일 시간에 하는 일들을 오브젝티브-C 는 실행 시간에 한다. -함수 호출이 아닌 메시징 구조(Messaging Structure)를 사용한다.Objective-C 는 메시징을 처음 사용한 스몰토크로부터 진화했다.메시징과 함수 호출은 다음과 같이 차이점이 있다. // 메시징Object *obj = [Object new];[obj performWith:param1 and:param2]; // 함수 호출Object *obj = new Object;obj->perf.. 2017. 7. 16.
[iOS Study] 병렬 프로그래밍 가이드 ( dispatch source ) [iOS Study] 병렬 프로그래밍 가이드 ( dispatch source ) https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/GCDWorkQueues/GCDWorkQueues.html#//apple_ref/doc/uid/TP40008091-CH103-SW1 About dispatch source -dispatch source 는 low-level system event 를 처리하기 위한 data type 이다. -Timer dispatch source 는 주기적인 noti 를 만든다. -Signal dispatch source 는 UNIX signal 이 도착하면 not.. 2017. 7. 3.
[iOS] __bridge 와 __bridge_transfer [iOS] __bridge 와 __bridge_transfer http://stackoverflow.com/questions/17544765/when-to-use-bridge-transfer-and-bridgehttps://soulpark.wordpress.com/2013/07/25/ios-arc-from-top-developer/ -__bridge 와 __bridge_transfer 는 ARC 에게 소유권 처리에 대해 알리는 keyword 이다.보통 non-objective-c pointer 에 붙어서 사용된다. -__bridge 는 ARC 에게 해당 포인터에 대해 소유권을 갖지 말라고 알려주는 것이다.이렇게 마킹한 녀석은 사용자 측에서 알아서 free 나 CFRelease 등을 사용해서 메모리 해제를.. 2017. 6. 21.
[Java] GC 에 대한 이야기 [Java] GC 에 대한 이야기 http://www.javaworld.com/article/2078645/java-se/jvm-performance-optimization-part-3-garbage-collection.html -System.gc() 를 호출하는 것이 GC 를 보장하지 않는다. -gc 가 호출되면 gc 는 자신이 실행되어도 안전한 시점인지 확인 후 실행된다.안전한 시점이라는 것은 지속적인 object allocation 이 아닐 때, optimized CPU instruction 의 중간이 아닐 때 와 같은 경우가 있겠다. -GC 는 여러 가지 variation 이 있지만 다음 두가지는 모든 GC 가 동일하다.1. OOM 이 나지 않도록 사용되지 않는 메모리를 free 시킨다.2. pe.. 2017. 5. 25.
[Server구축/Tutorial] Top 에 대한 이야기 [Server구축/Tutorial] Top 에 대한 이야기 -Linux 시스템의 자원인 CPU, Memory 등의 사용률을 살펴보는 명령어. -CPU 에서 %us 는 커널이 아닌 user 에 의한 점유율 %sy 는 커널(system)에 의해 사용되는 CPU 점유율 %id 는 유휴(idle) CPU -메모리는 물리 메모리와 Swap 메모리로 구성된다. Swap 항목 부분의 used 수치가 지속적으로 증가하면 시스템 메모리가 매우 부족한 상황 total 은 전체 메모리 용량을 의미 used 는 현재 사용되고 있는 메모리 용량 free 는 사용되지 않는 여유 메모리 용량 실제로 linux 서비스를 운영하다 보면 항상 free 수치가 급격히 줄어드는데, 이는 메모리 부족이 아니라 linux 커널의 특징이다.메모.. 2017. 5. 13.
[Tutorial] AndEngine Introduction [Tutorial] AndEngine Introduction * AndEngine 공식 사이트http://www.andengine.org/ 출처 : http://www.matim-dev.com/introduction-to-the-andengine.html Introduction -free open source OpenGL android game engine. -OpenGL 을 몰라도 Java 를 사용할 줄만 알면 OpenGL 의 feature 를 사용할 수 있다.물론 OpenGL 에 대한 지식과 경험이 있으면 더 도움이 된다. Feature -Multi resolution support -Multi touch supprot. -Physics extension -TiledMaps in TMX format .. 2014. 4. 24.
반응형