본문 바로가기
[Effective Java] 파이날라이저 ( finalizer ) 의 사용을 피하자. [Effective Java] 파이날라이저 ( finalizer ) 의 사용을 피하자. - 파이널라이저는 예측 불가에다가 위험하기도 하며 일반적으로 불필요하다. - 파이널라이저의 큰 단점은 신속하게 실행된다는 보장이 없다는 것. 즉 파이널라이저에서 time critical 하게 중요한 일을 해서는 안 된다는 것. - 파이널라이저가 얼마나 빨리 실행되는가는 가비지 컬렉션 알고리즘에 달려있으며, 이는 JVM 종류에 따라 다양하다. - 자바 언어 명세에는 파이널라이저가 신속하게 실행된다는 보장이 없는 것은 물론, 반드시 실행될것인지도 보장하고 있지 않다. - System.gc() 와 System.runFinalization() 메소드들을 사용하지 말자. 그 메소드들은 파이널라이저가 실행될 가능성을 높여주긴 하.. 2015. 12. 15.
하이퍼 바이저 ( Hypervisor ) 란? 하이퍼 바이저 ( Hypervisor ) 란? 참조 및 이미지 출처 : http://naleejang.tistory.com/91http://virtualhive.tistory.com/36 물리 서버를 가상화 환경으로 만들기 위해서는 하이퍼 바이저 ( Hypervisor ) 기술이 필요하다. 하이퍼 바이저는 호스트 컴퓨터 1대에서 다수의 운영체제를 동시에 실행할 수 있도록 해준다. 하이퍼 바이저는 2가지로 분류된다. 1. Native ( Bare-metal ) 하드웨어에 직접 설치되어 이 녀석이 여러개의 OS 를 돌린다. 호스트 OS 가 없어 이에 리소스를 할당하지 않아도 된다. 호스트형 가상화에 비해 오버헤드가 적고, 물리 컴퓨터 리소스 관리가 유연하다. 자체적으로 관리기능을 갖고 있지 않아 별도의 관리.. 2014. 5. 20.
[android] Bitmap 과 메모리에 대한 이야기. 끝판왕 android, Bitmap 과 메모리에 대한 이야기, 끝판왕! 안드로이드 메모리에 대한 이야기. 한 앱은 Dalvik Heap 과 External 두가지 영역이 존재한다.Dalvik Heap 은 Java 에서 사용하는 메모리라고 보면 되고,External 은 native 메모리라고 보면 된다. Dalvik Heap 영역은 메모리가 꽉 차면 늘긴 하지만 그 공간이 줄지는 않는다.반대로 External 영역은 유동적으로 그 공간이 늘었다 줄었다 한다.( 특히 Ginger Bread 에서는 Java Object 관리를 잘못하면 심심하면 OOM 을 만날 수 있겠다. ) HoneyComb 이전에는 bitmap 은 native memory 에서 관리했으나,HoneyComb 이후에는 bitmap 도 dalvik h.. 2014. 1. 26.
[android] ART ( android runtime ) 이란? (2017.08. updated) [android] ART ( android runtime ) 이란? - 2017. 8 내용 보강 ART, Android Runtime from Kitkat( 4.4 ) 기존의 안드로이드에서는 DEX file 을 Dalvik machine(JVM) 위에 올리는 방식이었는데,Kitkat ( 4.4 ) 부터는 ART(Android Runtime) machine 위에서 OAT file 을 돌리는 것이 가능해졌다.기존의 dex 파일을 dex2oat 라는 converter 를 이용해서 converting 하여 생성하고 run 한다. Dalvik 은 bytecode 를 interpret 한다.그러면서 사용자가 앱을 실행할 때마다 성능 개선이 있을 수 있는 부분에 대해 네이티브 코드로 변환을 한다.이를 JIT( jus.. 2014. 1. 22.
[android] OutOfMemoryError : bitmap size exceeds VM budget 을 해결해보자!!! 안드로이드, OutOfMemoryError : bitmap size exceeds VM budget해결해보자!! OutOfMemoryError: bitmap size exceeds VM budget 해결방법 #1 메니페스트의 applicaation tag 에 android:largeHeap="true" 를 준다.이 경우 원래보다 더 큰 용량의 힙 사이즈를 사용할 수는 있지만,GC 시간이 더 오래 걸리는 등의 문제가 생기기 쉽다.게다가 정확한 heap increase 가 보장되지 않는다. 결국 완벽한 solution 은 되지 못하고, 아주 특수한 상황에 한번씩 엄청난 양의 heap size 가필요할 때만 쓸 수 있는 미봉책정도가 되겠다. OutOfMemoryError: bitmap size exceeds .. 2013. 12. 13.
안드로이드 4.4 KitKat ( 킷캣 ) 뭐가 달라졌나? 안드로이드 4.4 KitKat ( 킷캣 ) 뭐가 달라졌나? 안드로이드 4.4 KitKat ( 킷캣 ) 뭐가 달라졌나? 4.1 부터 Jelly Bean 이라는 코드를 써온 안드로이드는이번 4.4부터 KitKat( 킷캣 ) 으로 새로운 코드를 부여했다. 보통은 어느 정도 큰 변화가 있을 때 코드명을 변경하는데,이번에는 메모리 이외에는 미래를 위한 초석작업인 자잘한 변화만 있는데도 코드명을 부여했다. 이는 이제는 안드로이드가 꽤나 안정적인 상태로 접어들었다는 이야기가 될수도 있고,더 이상 기술적으로나 아이디어적으로나 (요즘은 아무데나 붙이는.. ) 혁신이라 불릴 정도의 개선점을 찾을 수 없었거나 양 자 중 하나일 것이다. 우선 무엇이 바뀌었나 보자. 1. 메모리 이용량. 꼭 필요하지 않은데도 부팅과 동시에 서.. 2013. 11. 12.
반응형