본문 바로가기
[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.
Docker 에 대한 이해 Docker 에 대한 이해 http://bcho.tistory.com/805 -Docker 는 Linux 기반 & Container 기반 Runtime Open Source 이다.VM 과 비슷하면서 다르다. -VM 은.. Host OS 가 깔리고 그 위에 Hypervisor (VMWare, KVM, Xen 등 ) 가 깔리고, 그 위에 VM 이 만들어지는 구조이다.VM 은 x86 하드웨어를 가상화 한 것.다양한 종류의 OS 설치 가능 -Docker 도 VM 처럼 Docker Engine 이 Host OS 위에서 수행된다.VM 대신 Container 들이 생기는 구조인데, 이 Container 들은 Linux 기반의 OS만 수행 가능하다.Hardware 를 가상화 해주는 것이 아니라, Guest OS(Con.. 2017. 6. 8.
[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] ContentProviderOperation 에 대한 짧은 이야기 [android] ContentProviderOperation 에 대한 짧은 이야기 https://www.grokkingandroid.com/better-performance-with-contentprovideroperation/http://stackoverflow.com/questions/4655291/semantics-of-withvaluebackreferencehttps://developer.android.com/reference/android/content/ContentProviderOperation.Builder.html -여러 개의 data 에 대하 Create, Delete, Update 를 수행하려면 ContentProviderOperation 을 사용하여 batch 를 돌리는 것이 추천된.. 2017. 4. 15.
[iOS Study] 코어 데이터 [iOS Study] 코어 데이터 출처 : 아론 힐리가스의 iOS 프로그래밍 -데이터를 로컬에 저장하는 방법은 “아카이빙” 또는 “코어 데이터” 를 사용한다. -아카이빙의 가장 큰 결점은 전부 다냐 아무것도 아니냐는 특성에 있다.아카이브 안의 내용에 접근하려면 전체 파일을 언아카이브해야 한다.변경사항을 저장하려면 전체 파일을 다시 쓰기 해야 한다.반면 코어 데이터(Core Data)는 저장된 객체의 일부만 가져올 수 있다.그리고 어떤 객체를 변경한다면 파일의 해당 부분만 갱신할 수 있다.이러한 점진적 가져오기, 업데이트, 삭제, 삽입은 파일시스템과 메모리 사이를 오가는 많은 모델 객체를 가지는 경우 앱의 급격한 성능 향상을 가져올 수 있다. -코어 데이터는 객체-관계형 매핑 ( object-relatio.. 2016. 3. 25.
[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.
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.
getter / setter 장단점 Getter / Setter 장단점 [ 장점 ] * 단순히 get, set 뿐만이 아니라 다른 일을 하고 싶을 때 유용하다. - validation 을 할 수 있다. - get, set 하는 값을 변형해서 set 하거나 return 할 수 있다. - 안의 구조를 숨길 수 있다. ( encapsulation ) - 안의 변수명을 숨길 수 있다. - 상속할 때 override 할 수 있다. - getter 와 setter 에 다른 access level 을 적용할 수 있다. - lazy loading 이 가능하다. - 몇몇 library, platform, framework 에서 이를 요구하기도 한다. ( reflection 등 이용 ) [ 단점 ] 단순한 get, set의 경우에는 mobile 환경에서 p.. 2015. 2. 12.
Android RenderScript blur Android RenderScript Blur RenderScript 관련 API 들은 API 11 에 등장했다.하지만 Compat library 를 통해 API 8 부터 사용 가능하다. RenderScript 는 Graphic 작업을 할 때 CPU, GPU 중 해당 작업을 최적으로 처리할 수 있는 것을 찾아내서 multiple processor 작업을 하고 나중에 그 결과를 합치는 작업을 하여 성능을 매우 높인다. Native syntax 는 C99 기반으로, OpenCL, CUDA, GLSL 등이랑 비슷하다. private void blur(Bitmap bg, View textView, float radius) { Bitmap overlay .. 2014. 6. 8.
반응형