본문 바로가기
[iOS Study] 병렬 프로그래밍 가이드 ( dispatch queue ) [iOS Study] 병렬 프로그래밍 가이드 ( dispatch queue ) https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationQueues/OperationQueues.html#//apple_ref/doc/uid/TP40008091-CH102-SW1 About Dispatch Queues -모든 dispatch queue 는 FIFO 이다. -다음의 dispatch queue 가 있다. serial concurrent main dispatch queue -serial queue ( private dispatch queue ) 는 한번에 하나의 task 만 수.. 2018. 2. 1.
[Effective Objective-C] #31 참조를 릴리스하고 관찰 상태(observation state)를 정리하는 일은 dealloc 메서드에서만 하라 [Effective Objective-C] #31 참조를 릴리스하고 관찰 상태(observation state)를 정리하는 일은 dealloc 메서드에서만 하라 출처 : Effective Objective-C -생애 주기가 끝난 객체는 할당 해제되고 dealloc 메서드가 호출될 것이다.이 메서드는 객체의 생애 주기 동안 리테인 수가 0으로 떨어질 때 딱 한 번 호출된다.호출되는 시점은 보장되지 않는다. 그렇지만 리테인과 릴리스가 있는 코드를 살펴보고 언제 호출될지 예상할 수 있다고 생각할 수도 있다.그러나 실제로는 여러분이 모르는 사이에 어떠한 라이브러리라도 객체를 조작할 수 있다.이는 예정되지 않는 시점에 할당 해제가 일어나게 하는 원인이 될 수 있다. -절대로 dealloc 을 직접 호출하면 안 된.. 2017. 9. 24.
[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 Concurrency] 작업 실행 [Java Concurrency] 작업 실행 - 앱이 해야 할 일을 "작업"이라는 단위로 분할하면 프로그램의 구조를 간결하게 잡을 수 있고, 트랜잭션의 범위를 지정함으로써 오류에 효과적으로 대응할 수 있고, 작업 실행 부분의 병렬성을 자연스럽게 극대화 할 수 있다. 6.1. 스레드에서 작업 실행 - 프로그램에서 일어나는 일을 작업이라는 단위로 재구성하고자 한다면 가장 먼저 해야 할 일은 작업의 범위를 어디까지로 할 것인지 정하는 일이다. 원론적으로 보자면 작업은 완전히 독립적인 동작을 말한다. 독립성이 갖춰져 있어야 병렬성을 보장할 수 있다. 작업을 스케쥴링하거나 부하 분산(load balancing)을 하고자 할 때 폭넓은 유연성을 얻으려면 각 작업이 앱의 전체적인 업무 내용 가운데 충분히 작은 부분을.. 2017. 4. 24.
SSD 스펙에 대한 정보 SSD 스펙에 대한 정보 참조 : 다나와 읽기 속도, 쓰기 속도 SSD 의 읽기, 쓰기속도는 순차읽기/쓰기와 랜덤 읽기/쓰기로 나누어진다.순차 읽기는 용량이 큰 데이터를 읽어 올 때 ( 연속된 데이터 ) 를 이야기하며,랜덤 읽기는 파일 크기가 작은 데이터들을 읽어올 때 ( 연속되지 않은 데이터 ) 를 이야기한다. 보통 사용자들은 컴퓨터를 사용할 때 읽기를 주로 사용하기 떄문에 읽기속도가 더 중요한 스펙으로 볼 수 있다. 2014년 3월 기준 중상위권에 속하는 속도는 읽기 쓰기 각 500MB/s 대역이라고 볼 수 있다. 랜덤 읽기 속도 랜덤 읽기 속도는 IOPS ( Input/output Operation Per Second ) 로 따로 표시한다.읽기 속도보다는 쓰기 속도 기준으로 체감이 많이 차이난다고 .. 2014. 4. 17.
[android] bitmap recycle 사용시 주의사항. android, bitmap recycle 사용시 주의사항. 알고 있었나?Bitmap.recycle() 은 async 였다... 음...따라서 만약에 Cache 를 사용하는 상황에서, 한 ImageView 에 Bitmap 을 여러번 assign 하면서 Bitmap.recycle() 을 동시에 호출한다면 예를 들어.. 아래와 같이 하면 recycled bitmap 을 사용했다고 exception 이 날 수 있다. for( int i=0; i < 5; i++ ){ runOnUiThread( new Runnable(){public void run(){BitmapHelper.recycleBitmap ( imageView ); // my helper class.AsyncImageSetter.setImage( im.. 2014. 4. 2.
[android] volley library 에 대해 알아보자! 안드로이드, Volley Library 에 대해 알아보자! Android Volley Libary 의 장점 1. 모든 network request 를 자동으로 스케쥴링한다.2. 보이지 않게 disk, memory caching 을 한다.3. 강력한 request 취소 API 도 제공한다.4. customization 도 쉽게 할 수 있다.5. debugging 과 tracing tool 을 제공한다. 써보고 싶어! library 를 구할 수 있는 주소를 알려줘. git clone https://android.googlesource.com/platform/frameworks/volley 2개의 main class. 1. Request queuerequest 를 dispatch 할 때 사용되는 녀석.보통 s.. 2013. 12. 10.
[android] process 죽이는 방법. 안드로이드, process 죽이는 방법 옛날 방법 Froyo 로부터 deprecated 되었지만, 혹여나 Froyo 이전도 지원할 경우에 필요할 것 같아 정리했다. 메니페스트에 다음 퍼미션을 주고.. App 에서 다음 코드를 수행한다. ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);am.restartPackage( getPackageName() ); 새로운 방법 메니페스트에 다음 퍼미션을 주고.. 다음 코드로 process 를 죽여준다. ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);am.killBackgroundProcesses (get.. 2013. 11. 13.
반응형