반응형
원문 : http://yjacket.tistory.com/48
결과
결과
ArrayList - 넣기 : 38ms
ArrayList - 빼기 : 36851ms
HashMap - 넣기 : 170ms
HashMap - 빼기 : 17ms
ConcurrentLinkedQueue - 넣기 : 156ms
ConcurrentLinkedQueue - 빼기 : 17ms
LinkedList - 넣기 : 41ms
LinkedList - 빼기 : 9ms
ArrayBlockingQueue - 넣기 : 32ms
ArrayBlockingQueue - 빼기 : 22ms
ArrayDeque - 넣기 : 17ms
ArrayDeque - 빼기 : 5ms
LinkedBlockingQueue - 넣기 : 47ms
LinkedBlockingQueue - 빼기 : 32ms
LinkedBlockingDeque - 넣기 : 100ms
LinkedBlockingDeque - 빼기 : 24ms
PriorityBlockingQueue - 넣기 : 68ms
PriorityBlockingQueue - 빼기 : 188ms
SynchronousQueue - 넣기 : 7ms
SynchronousQueue - 빼기 : 4ms
PriorityQueue - 넣기 : 16ms
PriorityQueue - 빼기 : 164ms
테스트코드
접기
QueueTest.java
Q1, Q2 는 각각 ArrayList와 HashMap 으로 구현한 큐 클래스임
import java.util.ArrayDeque;import java.util.LinkedList;import java.util.PriorityQueue;import java.util.Queue;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.LinkedBlockingDeque;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.PriorityBlockingQueue;import java.util.concurrent.SynchronousQueue;
import com.gytni.imon3lib.util.StopWatch;
public class QueueTest{public static void main(String[] args){Q1 q1 = new Q1();Q2 q2 = new Q2();Queue<Integer> q3 = new ConcurrentLinkedQueue<Integer>();Queue<Integer> q4 = new LinkedList<Integer>();Queue<Integer> q5 = new ArrayBlockingQueue<Integer>(300000);Queue<Integer> q6 = new ArrayDeque<Integer>();Queue<Integer> q7 = new LinkedBlockingQueue<Integer>();Queue<Integer> q8 = new LinkedBlockingDeque<Integer>();Queue<Integer> q9 = new PriorityBlockingQueue<Integer>();Queue<Integer> q0 = new SynchronousQueue<Integer>();Queue<Integer> qa = new PriorityQueue<Integer>();StopWatch.start();for (int i = 0; i < 300000; i++)q1.offer(i);StopWatch.stop("ArrayList - 넣기");for (int i = 0; i < 300000; i++)q1.poll();StopWatch.stop("ArrayList - 빼기");for (int i = 0; i < 300000; i++)q2.offer(i);StopWatch.stop("HashMap - 넣기");for (int i = 0; i < 300000; i++)q2.poll();StopWatch.stop("HashMap - 빼기");for (int i = 0; i < 300000; i++)q3.offer(i);StopWatch.stop("ConcurrentLinkedQueue - 넣기");for (int i = 0; i < 300000; i++)q3.poll();StopWatch.stop("ConcurrentLinkedQueue - 빼기");for (int i = 0; i < 300000; i++)q4.offer(i);StopWatch.stop("LinkedList - 넣기");for (int i = 0; i < 300000; i++)q4.poll();StopWatch.stop("LinkedList - 빼기");for (int i = 0; i < 300000; i++)q5.offer(i);StopWatch.stop("ArrayBlockingQueue - 넣기");for (int i = 0; i < 300000; i++)q5.poll();StopWatch.stop("ArrayBlockingQueue - 빼기");for (int i = 0; i < 300000; i++)q6.offer(i);StopWatch.stop("ArrayDeque - 넣기");for (int i = 0; i < 300000; i++)q6.poll();StopWatch.stop("ArrayDeque - 빼기");for (int i = 0; i < 300000; i++)q7.offer(i);StopWatch.stop("LinkedBlockingQueue - 넣기");for (int i = 0; i < 300000; i++)q7.poll();StopWatch.stop("LinkedBlockingQueue - 빼기");for (int i = 0; i < 300000; i++)q8.offer(i);StopWatch.stop("LinkedBlockingDeque - 넣기");for (int i = 0; i < 300000; i++)q8.poll();StopWatch.stop("LinkedBlockingDeque - 빼기");for (int i = 0; i < 300000; i++)q9.offer(i);StopWatch.stop("PriorityBlockingQueue - 넣기");for (int i = 0; i < 300000; i++)q9.poll();StopWatch.stop("PriorityBlockingQueue - 빼기");for (int i = 0; i < 300000; i++)q0.offer(i);StopWatch.stop("SynchronousQueue - 넣기");for (int i = 0; i < 300000; i++)q0.poll();StopWatch.stop("SynchronousQueue - 빼기");for (int i = 0; i < 300000; i++)qa.offer(i);StopWatch.stop("PriorityQueue - 넣기");for (int i = 0; i < 300000; i++)qa.poll();StopWatch.stop("PriorityQueue - 빼기");}}
접기
반응형
'안드로이드' 카테고리의 다른 글
[안드로이드] GirdView에서 아이템 클릭시, OnItemClick() 메소드 수행 후 getView() 호출 이유(?) (0) | 2011.08.09 |
---|---|
[안드로이드] 다중쓰레드 기반에서 ProgressBar 멈춤 현상 (0) | 2011.08.09 |
[안드로이드] Drag&Drop 을 할 수 있는 ListView 만들기 (0) | 2011.08.05 |
클래스 로딩 문제 분석하기, Part 2: 기본적인 클래스 로딩 예외(Exception) (한글) (0) | 2011.08.04 |
[안드로이드] Asset 폴더의 제약사항 및 대용량DB 넣기 (0) | 2011.08.04 |
안드로이드 폴더 삭제 (0) | 2011.07.21 |
자바 입출력(객체형식으로 파일 입출력, 소켓형식의 입출력) (0) | 2011.07.19 |
Heap 메모리 분석 (0) | 2011.07.07 |
안드로이드 메모리 누수 줄이기 (0) | 2011.07.07 |
RSS(Really Simple Syndication) 표준 (0) | 2011.07.07 |