LinkedList vs ArrayDeque 누구탓하리요 ㅠ.ㅠ
공부를 못하는 학생이였지만
그래도 linked list 와 array 장단점은 1원 팁 수준이라 기억 하기에
배열의 경우 배열 크기 재 조정시 비용이 크기 때문에
배열의 삽입 삭제는 링크드 리스트보다 느리다 배웠고 그렇게 믿고 살아왔습니다.
socket connection pool 을 다루어야 하기때문에 조금더 빠른 queue 가 없는가 해서
검색중 LinkedList 보다 단순 삽입 삭제시 ArrayDeque 가 더 빠르다는 글이 있어 진짜로 샘플 가져와서 돌려보니 그러네요.
직접 실험해야 한다는 말씀을 경시한 죄 받아 마땅합니다. ㅠ.ㅠ
------- ListPerfTest 소스 샘플
LinkedList vs ArrayDeque 참고 주소 : http://javaqueue2010.blogspot.kr/
package javapackage.java.util;
import java.util.ArrayDeque;
import java.util.LinkedList;
import java.util.Queue;
public class ListPerfTest {
private static final Queue<String> queue1 = new LinkedList<String>();
private static final Queue<String> queue2 = new ArrayDeque<String>();
private static int Count = 1000000;
public static void main(String ... args) {
if (args.length > 1) {
Count = Integer.parseInt(args[0]);
}
System.out.println("Test starts");
long start = System.nanoTime();
for (int i = 0; i < Count; i++) {
queue1.offer(i + "");
}
for(int i = (Count >> 1); i > 0; i++) {
queue1.peek();
queue1.poll();
}
long end = System.nanoTime();System.out.println("Using linked list takes about:"+(end-start)/1000000+"ms");
System.gc();
start=System.nanoTime();
for (int i = 0; i < Count; i++) {
queue2.offer(i + "");
}
for(int i = (Count >> 1); i > 0; i++) {
queue2.peek();
queue2.poll();
}
end=System.nanoTime();
System.out.println("Using ArrayDeque takes about:"+(end-start)/1000000+"ms");System.out.println("Test finished");
}
}
1
0
댓글을 남기려면 로그인이 필요합니다.
로그인 후 이 페이지로 돌아와 바로 댓글을 남길 수 있습니다.