본문 바로가기
[android] "Memory leak" detect library [android] "Memory leak" detect library https://medium.com/square-corner-blog/leakcanary-detect-all-memory-leaks-875ff8360745 -Square 에서 고객 사인에 대한 OOM 방지를 위해 한 노력들 1. Bitmap.Config.ALPHA_8 로 Bitmap 생성 (color 값이 필요 없는 경우.)2. OutOfMemoryError(이하 OOM) 을 catch 해서 GC 를 강제로 수행하고 retry -Bitmap 이 문제가 아님을 깨달음.OOM 은 memory 가 full 에 가까우면 작은 bitmap 을 생성할 때도 죽을 수 있다.즉, 애초에 memory leak 이 나지 않게 해서 memory footpr.. 2019. 1. 29.
[android] 최고의 안드로이드 개발 원칙 [android] 최고의 안드로이드 개발 원칙 https://medium.freecodecamp.com/android-development-best-practices-83c94b027fd3#.fkhdpa3m0cf) 현재 제가 잘 못 하고 있는 것을 빨간 색 마킹 했습니다. ( 결론은 test 군요.. ) -Google 이 추천하는 Android architecture 를 사용하라. -코드 퀄리티를 항상 좋게 유지하라. -Unit test 를 항상 포함하라. JVM 에서 돌 수 있는 Java 코드들은 단말 위에서 테스트하는 것보다 훨씬 빠르다. Android dependency 가 있는 코드들은 Robolectric 을 사용하는 것을 추천한다. Mockito 도 좋다. -Functional UI test .. 2018. 3. 7.
[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.
[Effective Java] 쓸모 없는 객체 참조를 제거하자. [Effective Java] 쓸모 없는 객체 참조를 제거하자. - 자바와 같이 가비지 컬렉션을 자동으로 해주는 언어는 메모리 관리를 따로 해줄 필요가 없다고 생각하기 쉬우나, 이는 틀린 생각이다. GC 의 원리에 대해 정확히 이해하고 메모리 관리를 해주어야 한다. 다만 그 메모리 관리하는 범위가 C, C++ 과 같은 GC 가 없는 언어들에 비해 더 간단할 뿐! - 자바에서도 메모리 누출(memory leak)이 쉽게 발견된다. 메모리 누수가 생기면, 성능저하의 형태로 서서히 나타난다. GC 작업이 증가하거나, 메모리 할당과 회수 횟수가 빈번해지기 때문이다. 심하면 디스크 페이징 현상이 나타나기도 하고, 아주 극단적으로는 OutOfMemoryError 가 발생한다. 메모리 누수의 무서운 점은, 특정 객체.. 2016. 1. 4.
[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] 일반적이지 않은 사진(이미지) 모양 만들기 #1 - 모서리가 둥근 사각형 일반적이지 않은 사진(이미지) 모양 만들기 #1 - 모서리가 둥근 사각형 출처 : http://blog.stylingandroid.com/archives/2656 2가지 이미지를 합성해, 사각형의 이미지를 다른 모양으로 바꿀 수 있다.이번에 알아볼 것은 모서리가 둥근 사각형을 이용하여, 사각형 이미지를 둥근 사각형 모양으로 masking 하는 것이다. public Bitmap combineImages(Bitmap bgd, Bitmap fg) { Bitmap bmp; int width = bgd.getWidth() > fg.getWidth() ? bgd.getWidth() : fg.getWidth(); int height = bgd.getHeight() > fg.getHeight() ? bgd.getHei.. 2015. 4. 11.
[android] Volley 를 이용한 동영상 업로드 테스트 결과. android, Volley 를 이용한 동영상 업로드 테스트 결과. 테스트 환경 국내 android major 단말들이라고 할 수 있는 Galaxy S 시리즈와 Note 1 을 대상으로 삼았다.동영상 업로드 방법은 Volley 와 MultipartRequest 를 이용한 일시 업로드이다. Galaxy S / hdpi / 2.3.4 - 12.5M 동영상 ( 30초 ) -process mem = 64MBruntime maxMemory = 64MBruntime totalMemory = 5MBruntime freeMemory = 2MBnative threshold = 26MBnative availMem = 83MB -Out of memory on a 26310336-byte allocation. java.lan.. 2014. 4. 20.
반응형