Cores and Threads
안드로이드 어플리케이션을 빠르고 효율적으로 실행시키기 위해 dual-core chips 와 quad-core processor 들이 개발 되었고 안드로이드 디바이스에 적용되었습니다. 이런 multicore architecture들의 장점을 활용하기 위해 thread scheduler 같은 안드로이드 모듈에 관련된 기술이 만들어 졌습니다. 이 thread scheduler가 하는 일은 서로 다른 core들 사이에서 어플리케이션이 분할 되서 할당되어 그 성능을 최대치로 활용하는 겁니다.
어플리케이션을 효과적으로 운영하기 위해서는 메모리 관리도 중요한데요. garbage collectgor 를 가동하는 것은 메모리 recycling 의 아주 핵심적인 부분 입니다. 그리고 한가지 더 언급하자면 어플리케이션의 최적화 입니다. 바로 백그라운드 쓰레드에 의해서 서로 interactive 하지 않은 태스크를 갖는 겁니다. 쓰레드는 어플리케이션의 멀티 태스킹기능을 가능하도록 해 줍니다.
요 며칠간 multicore processor architecture를 활용하는 것과 메모리 관리에 있어서의 garbage의 역할 그리고 쓰레드와 AsyncTask 클래스를 사용해서 백그라운드로 어플리케이션의 task 들을 수행해 퍼포먼스를 개선시키는 것과 관련해서 다뤄 보겠습니다.
Multicore Processor Architectures 의 활용 이해하기
당연히 멀티태스킹이 싱글 태스킹 보다 더 나은 겁니다. 싱글 태스킹에서는 한 task 가 작업을 수행할 때 다른 task들은 작업하는 task 가 수행을 끝낼때까지 stop 해 있어야 합니다. 반면에 멀티태스킹은 한가지 task 를 동시에 더 진행할 수 있습니다. 이 multi tasking 을 수행하도록 하기 위해 multicore processor architecture 가 사용됩니다. 안드로이드 3.0 이상의 버전에서 바로 이 single processor architecture나 multicore processor architecture를 활용할 수 있는 기능이 제공 되었습니다.
Multiple core들은 어플리케이션의 작업을 서로 다른 core에서 동시에 수행하도록 나눠 줌으로서 퍼포먼스 향상을 가져 옵니다. 이 multicore processor 는 thread scheduler에 의해 효율적으로 사용할 수 있습니다. multicore mobile processor의 잇점은 모든 core들에 소프트웨어의 task들이 할당되고 schedule 될 때 진정한 의미가 있는 것입니다. 만약 scheduling 이 제대로 작동하지 않으면 오히려 그 어플리케이션의 퍼포먼스는 안 좋아 질 수 있습니다.
많은 안드로이드 기계들이 dual-core chip들이나 quad-core processor 기능들을 가지고 있습니다. 이 dual- 그리고 quas-core 전화기를 최적화시키기 위해 몇가지 변화가 있었습니다. 그리고 그 중에 thread scheduler 는 이 새로운 quad-core 와 dual-core chip들에 대해 최고의 퍼포먼스를 보여줄 수 있도록 개선 됐습니다.
'WEB_APP > Android' 카테고리의 다른 글
[CookBook] Fragments 이해하기 -1- (0) | 2013.09.25 |
---|---|
[Cookbook] 안드로이드 Cores 와 Threads 이해하기 -5- (0) | 2013.09.25 |
[Cookbook] 안드로이드 Cores 와 Threads 이해하기 -4- (0) | 2013.09.24 |
[Cookbook] 안드로이드 Cores 와 Threads 이해하기 -3- (0) | 2013.09.24 |
[Cookbook] 안드로이드 Cores 와 Threads 이해하기 -2- (0) | 2013.09.23 |
[CookBook] 원격에서JSON 데이터 받아와서 사용하기 (0) | 2013.09.20 |
[CookBook] Tweening Animation 소스 분석하기 -2- (0) | 2013.09.19 |
[CookBook] Tweening Animation 소스 분석하기 -1- (0) | 2013.09.18 |
[PageSliding] SamplePageSliding 소스 파일 분석하기 (0) | 2013.09.17 |
[ViewPager] SampleVIewPager 소스 파일 분석하기 -2- (0) | 2013.09.16 |