본문 바로가기
[iOS Study] 병렬 프로그래밍 가이드 ( 병렬 앱 디자인 ) [iOS Study] 병렬 프로그래밍 가이드 ( 병렬 앱 디자인 ) https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/ConcurrencyandApplicationDesign/ConcurrencyandApplicationDesign.html#//apple_ref/doc/uid/TP40008091-CH100-SW1 -전통적 방법으로의 복수개의 코어를 사용하는 방법은 여러개의 thread 를 만들어 사용하는 것이다.그러나 thread 를 사용한 코드는 scale 측면에서 좋지 않다.core 가 처리하기 좋은 thread 의 갯수를 아는 것도 쉽지 않고, thread 들을 효율적으.. 2017. 7. 1.
[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.
[android] adb dumpsys 를 잘 사용해보자. [android] adb dumpsys 를 잘 사용해보자. // service 들의 이름을 보자.> dumpsys | grep “DUMP OF SERVICE" // battery 정보를 보자.> dumpsys battery // wifi 정보를 보자.> dumpsys wifi // cpu 정보를 보자.> dumpsys cpuinfo // 특정 앱의 memory 정보를 보자> dumpsys meminfo “app package name" // activity 정보를 보자> dumpsys activity // 패키지 정보를 보자> dumpsys package [optional app package name] // window 정보를 보자> dumpsys window activity, adb dumpsys, .. 2017. 5. 18.
[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.
[python3] 뇌를 자극하는 파이썬 - 코딩을 배우기 전에 읽는 컴퓨터 구조론 [python3] 뇌를 자극하는 파이썬 - 코딩을 배우기 전에 읽는 컴퓨터 구조론 -책을 읽으며 Remind 하는 내용, 핵심 내용, 모르던 내용을 정리한 것입니다. 예문 및 자세한 설명은 책을 구매하여 보세요~ 2.1. 폰 노이만 구조 -최초 컴퓨터는 애니악(ENIAC, Electronic Numerical Integrator and Computer) 였는데, 애니악은 명령어를 기억하고 있지 않기 때문에 프로그램을 변경할 때마다 수많은 케이블을 뽑아 다른 위치에 꽂고 스위치를 내리고 올리는 작업을 해야 했다. 그래서 폰 노이만은 에드박(EDVAC, Electronic Discrete Variable Automatic Computer) 를 개발했다.에드박은 명령어를 기억 장치에 내장하고 있기 때문에 프로.. 2016. 9. 27.
[iOS Study] 코어 데이터 [iOS Study] 코어 데이터 출처 : 아론 힐리가스의 iOS 프로그래밍 -데이터를 로컬에 저장하는 방법은 “아카이빙” 또는 “코어 데이터” 를 사용한다. -아카이빙의 가장 큰 결점은 전부 다냐 아무것도 아니냐는 특성에 있다.아카이브 안의 내용에 접근하려면 전체 파일을 언아카이브해야 한다.변경사항을 저장하려면 전체 파일을 다시 쓰기 해야 한다.반면 코어 데이터(Core Data)는 저장된 객체의 일부만 가져올 수 있다.그리고 어떤 객체를 변경한다면 파일의 해당 부분만 갱신할 수 있다.이러한 점진적 가져오기, 업데이트, 삭제, 삽입은 파일시스템과 메모리 사이를 오가는 많은 모델 객체를 가지는 경우 앱의 급격한 성능 향상을 가져올 수 있다. -코어 데이터는 객체-관계형 매핑 ( object-relatio.. 2016. 3. 25.
[android] ART 의 GC 이야기. [android] ART 의 GC 이야기. http://commonsware.com/blog/2014/06/16/art-garbage-collection.html ART 의 GC 는 아직은 아니지만, Compacting garbage collector 를 추구한다. 기존의 JVM 은 memory 의 fragmentation 이 되 있을 때 마지막 연속된 여유로운 공간에 대해 새로운 memory 할당을 시도하고, 그것이 실패하면 OutOfMemoryError 를 뿜어낸다. 하지만 Compacting garbage collector 에서는 이 fragmentation 을 해결하여 GC 하기 때문에fragmented 된 부분을 포함하여 정말 메모리가 부족할 때 OutOfMemoryError 를 뿜는다. 다시말.. 2015. 12. 2.
android largeheap - largeHeap 은 HoneyComb ( 3.0, SDK 11 ) 부터 등장. - reference doc. http://developer.android.com/guide/topics/manifest/application-element.html#largeHeap android:largeHeap Whether your application's processes should be created with a large Dalvik heap. This applies to all processes created for the application. It only applies to the first application loaded into a process; if you're using a shared u.. 2015. 6. 6.
안드로이드 단말 최악의 상황으로 만들어 테스트하기. 안드로이드 단말 최악의 상황으로 만들어 테스트하기. 개발자들은 보통 빠른 개발과 테스트 등을 위해서 HIgh-end 단말들을 갖고 개발을 한다.특정 단말 타겟 개발이 아닌 경우는 어떤 단말에서 내가 개발하는 앱을 올릴지 예상할 수 없기 때문에,항상 하드웨어 스펙이 낮은 단말과 안드로이드 버전이 낮은 단말을 염두해두어야 한다. https://github.com/emil10001/LoadTester 이 녀석은 6 개의 Thread 를 생성해서 CPU 를 busy 하게 만들기도 하고,130~140 MB 정도의 Memory 를 소비하게 해서 memory 부족 상황도 만들어주고.Network request 도 만들어서 network busy 환경도 만들어준다. 만약 에뮬레이터로 테스트하는 것이 너무 짜증나거나,저.. 2014. 6. 6.
반응형