본문 바로가기
Android

[Android] 코드에서 속도 체크 SystemClock uptimeMillis

by bryan.oh 2020. 4. 8.
반응형

코드 속도 체크

SystemClock.uptimeMillis()

 

속도 체크를 하고 싶은 시작 부분에

Long start = SystemClock.uptimeMillis();

종료 부분에

Long end = SystemClock.uptimeMillis();
Log.d("#SPEEDTEST", "for using stream : " + (end-start) + "ms");

 

테스트 

stream 을 이용한 loop 와 그냥 for loop 의 속도를 비교해볼까요?

// stream 이용
Long start = SystemClock.uptimeMillis();
filteredList = orgList.stream().filter(f->isTagExists(f.getTag(), tagList)).collect(Collectors.toList());
Long end = SystemClock.uptimeMillis();
VLog.d("#SPEEDTEST", "for using stream : " + (end-start) + "ms");


// for 이용
start = SystemClock.uptimeMillis();
for(ItemAlbum album : orgList){
    if(isTagExists(album.getTag(), tagList) )
        filteredList.add(album);
}
end = SystemClock.uptimeMillis();
VLog.d("#SPEEDTEST", "foreach : " + (end-start) + "ms");

결과

D/#SPEEDTEST: for using stream : 8ms
D/#SPEEDTEST: foreach : 3ms

 

stream 이 보기 좋아보여도

그냥 for 문이 훨씬 빠릅니다.

 

코딩 이쁘게해서 뭐합니까!? 성능이 좋은게 더 좋은 평가를 받습니다.

 

참고로 C#에서도 LINQAsEnumerable 로 하는것이 있는데 
그건 일반 for 문과 비교해서 속도가 

 

728x90
반응형

댓글