티스토리 뷰

Computer/Java

Static on Java- Speed Test

DogBull 2006.10.09 22:03

Static으로 선언된 메소드일반 메소드의 비교.
어느 정도의 속도차이를 내는지 알아보았다.

테스트 조건

1. 10억 번 루프를 돌려 수행 시간을 얻는다.

2. 1번을 10번 수행하여 평균을 얻는다.

결과

단위 milli-Second


-- 동일 클래스 상에서 속도 체크(함수로 호출) --

Normal 은 동일 클래스의 static이 아닌 변수를 1씩 증가 시키는 함수를 루프 시킨 결과.

Static 는 동일 클래스의 static 변수를 1씩 증가 시키는 static 함수를 루프 시킨 결과.

-- 동기화 고려된 메소드 ---

Normal은 동기화로 선언한 일반 메소드를 호출.

Static는 동기화로 선언한 static 메소드를 호출.

-- 외부 클래스에서의 비교 값 --

Normal은 인스턴스 생성 후 그 인스턴스의 멤버 변수를 1씩 증가 시키는 함수의 루프 결과.

Static 는 인스턴스 생성 없이 다른 클래스의 static 멤버변수를 1씩 증기 시키는 static 함수 루프.

-- 외부 클래스에서의 비교(단순 참조) --

Normal은 인스턴스 생성 후 다른 예 처럼 1씩 카운터 하지 않고 단순히 값만 읽음.

Static은 인스턴스 생성 없이 역시 1씩 카운터 하지 않고 단순히 값만 읽음.



결과

-동일 클래스 상에서는 static이 더 느리다.(10%)

-동기화 되었을 경우는 더욱 더 느리다.(20%)

-동일 한 작업을 다른 클래스에서 수행할 때 static는 시간의 아무 변화 없으나
  일반 메소드는 동일 클래스 상에서 보다 작업시간이 10% 가량 더 필요하다.

-다른 클래스에서의 작업 시간은 static나 일반 메소드나 비슷하다.

-다른 클래스의 변수 참조는 static이 더 느리다(30%)

'Computer > Java' 카테고리의 다른 글

Programming Language....  (0) 2007.08.17
[Data Structure2] Graph Matrix  (0) 2006.10.22
Static on Java- Speed Test  (0) 2006.10.09
[Data Structure2] Binary Tree (Linked List)  (0) 2006.10.09
[Data Structure2] Max Heap (for int array)  (0) 2006.10.09
[tip] 화면 크기 구하기.  (0) 2006.08.04
댓글
Total
168,075
Today
8
Yesterday
34