반응형
코드 속도 체크
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#에서도 LINQ 나 AsEnumerable 로 하는것이 있는데
그건 일반 for 문과 비교해서 속도가
728x90
반응형
'Android' 카테고리의 다른 글
youtube Thumbnail 이미지 url (0) | 2020.04.29 |
---|---|
[Android] Email 보내기 Email Intent (0) | 2020.04.21 |
[Android] getColor From Resource (0) | 2020.04.08 |
[Android] Color Argb 에서 투명도 %에 따른 코드 (0) | 2020.04.07 |
[Android] Battery check. 배터리 정보 가져오기 (0) | 2020.03.18 |
댓글