AMD Winsor 6000+ , 3.0GHz Athlon64 Dual Core.
Java에서 지원하는 Integer형의 최대값 2 ^ 31 - 1.
2147483647
Integer형 for문으로 최대값까지 루프에 걸리는 시간 체크.
2 ^ 31 - 1까지 루프에 소요되는 시간,
Java, 평균 2172밀리섹.
C, 평균 5348밀리섹.
왜 이런 현상이.....?!
특이점,
java에서,
for( int i= 2147483647; i>=0; i--){
hello h= new hello();
h= null;
}
c에서,
for( int i=2147483647; i>=0; i--){
hello* h= new hello();
delete h;
}
와 같이 했을 경우, 현저한 속도 저하를 보여주는 것이 C.
java에서야 h= null;을 해주지 않아도, Garbage Collector가 알아서 메모리 관리를 해주지만,
c에서는 반드시 delete를 해주어야 한다.
상기한 함수 수행 소요 시간,
java, 평균 10882밀리섹.
c, 평규 5분 이상.
이해할 수 없는 현상.
java에서 explicit Garbage Collection을 해줄 경우, ( System.gc(); 가 for문 내부에 존재, )
java 역시 5분 이상 소요.
크헉!
쓰면서 하다보니....
C Release Mode에서는 2 ^ 31 - 1 Empty Loop 밀리초로는 측정 불가.
hello 클래스 생성/삭제 283008밀리섹 소요.
1. C, 완성된 것은 반드시 릴리즈로 컴파일.
2. 릴리즈 모드에서도 클래스 생성 / 삭제를 자바와 같이 쉽게 생각해서는 안됨.
3. Java는 상대적으로 느리지만, C의 개념없는 코드보다는 훨씬 빠르다.
Java에서 지원하는 Integer형의 최대값 2 ^ 31 - 1.
2147483647
Integer형 for문으로 최대값까지 루프에 걸리는 시간 체크.
2 ^ 31 - 1까지 루프에 소요되는 시간,
Java, 평균 2172밀리섹.
C, 평균 5348밀리섹.
왜 이런 현상이.....?!
특이점,
java에서,
for( int i= 2147483647; i>=0; i--){
hello h= new hello();
h= null;
}
c에서,
for( int i=2147483647; i>=0; i--){
hello* h= new hello();
delete h;
}
와 같이 했을 경우, 현저한 속도 저하를 보여주는 것이 C.
java에서야 h= null;을 해주지 않아도, Garbage Collector가 알아서 메모리 관리를 해주지만,
c에서는 반드시 delete를 해주어야 한다.
상기한 함수 수행 소요 시간,
java, 평균 10882밀리섹.
c, 평규 5분 이상.
이해할 수 없는 현상.
java에서 explicit Garbage Collection을 해줄 경우, ( System.gc(); 가 for문 내부에 존재, )
java 역시 5분 이상 소요.
크헉!
쓰면서 하다보니....
C Release Mode에서는 2 ^ 31 - 1 Empty Loop 밀리초로는 측정 불가.
hello 클래스 생성/삭제 283008밀리섹 소요.
1. C, 완성된 것은 반드시 릴리즈로 컴파일.
2. 릴리즈 모드에서도 클래스 생성 / 삭제를 자바와 같이 쉽게 생각해서는 안됨.
3. Java는 상대적으로 느리지만, C의 개념없는 코드보다는 훨씬 빠르다.
'Computer > Java' 카테고리의 다른 글
java RMI, Exception:Connection refused to host... (0) | 2012.03.08 |
---|---|
[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 |