심심해서.. 비교..
글쓴이: plusme / 작성시간: 금, 2004/02/27 - 2:09오전
java 1.4.2_03
vc++ 6.0
java가 쫌더 빠르게 나오네요..
#include <iostream.h> #include <time.h> void main() { long start_time = time(NULL); double a = 8.0; double b = 3.0; for(int i = 0 ; i<90000000;i ++) { a/=(b+=a); } cout << (long)time(NULL) - start_time << endl; }
public class TestJava { public static void main(String[] args) { System.currentTimeMillis(); System.out.println(); long start = System.currentTimeMillis(); double a = 8.0; double b = 3.0; for(int i = 0 ; i<90000000;i ++) { a/=(b+=a); } System.out.println( (System.currentTimeMillis() - start )/1000 ); } }
[/code]
Forums:
최적화는 하셨나요?
Debug와 Realese의 성능차이가 많이 나던데
Realese에서 테스트 하신건가요?
흠.. 차이가 나는것 같습니다.
펜4 2.4B, 768MB(DDR PC2700), WinXP pro+sp1,
VC++ 6.0 + SP5
J2SDK 1.4.2 에서 테스트 하였습니다.
Release mode로 컴파일 하여 cmd 창에서 실행
D:\work\Bench01\Release>bench01.exe
TEST #0000 -> 1.312 sec
TEST #0001 -> 1.328 sec
TEST #0002 -> 1.313 sec
TEST #0003 -> 1.312 sec
TEST #0004 -> 1.344 sec
TEST #0005 -> 1.313 sec
TEST #0006 -> 1.312 sec
TEST #0007 -> 1.344 sec
TEST #0008 -> 1.312 sec
TEST #0009 -> 1.313 sec
TEST #0010 -> 1.328 sec
TEST #0011 -> 1.312 sec
TEST #0012 -> 1.313 sec
TEST #0013 -> 1.344 sec
TEST #0014 -> 1.312 sec
TEST #0015 -> 1.313 sec
TEST #0016 -> 1.328 sec
TEST #0017 -> 1.312 sec
TEST #0018 -> 1.313 sec
TEST #0019 -> 1.329 sec
TEST #0020 -> 1.312 sec
TEST #0021 -> 1.313 sec
TEST #0022 -> 1.328 sec
TEST #0023 -> 1.312 sec
TEST #0024 -> 1.328 sec
TEST #0025 -> 1.328 sec
TEST #0026 -> 1.313 sec
TEST #0027 -> 1.312 sec
TEST #0028 -> 1.329 sec
TEST #0029 -> 1.312 sec
TEST #0030 -> 1.313 sec
TEST #0031 -> 1.343 sec
TEST #0032 -> 1.313 sec
TEST #0033 -> 1.312 sec
TEST #0034 -> 1.328 sec
TEST #0035 -> 1.313 sec
TEST #0036 -> 1.312 sec
TEST #0037 -> 1.344 sec
TEST #0038 -> 1.297 sec
TEST #0039 -> 1.328 sec
TEST #0040 -> 1.328 sec
TEST #0041 -> 1.313 sec
TEST #0042 -> 1.328 sec
TEST #0043 -> 1.328 sec
TEST #0044 -> 1.344 sec
TEST #0045 -> 1.344 sec
TEST #0046 -> 1.312 sec
TEST #0047 -> 1.313 sec
TEST #0048 -> 1.328 sec
TEST #0049 -> 1.312 sec
TEST #0050 -> 1.313 sec
TEST #0051 -> 1.343 sec
TEST #0052 -> 1.313 sec
TEST #0053 -> 1.312 sec
TEST #0054 -> 1.329 sec
TEST #0055 -> 1.312 sec
TEST #0056 -> 1.313 sec
TEST #0057 -> 1.343 sec
TEST #0058 -> 1.313 sec
TEST #0059 -> 1.312 sec
TEST #0060 -> 1.328 sec
TEST #0061 -> 1.313 sec
TEST #0062 -> 1.312 sec
TEST #0063 -> 1.344 sec
TEST #0064 -> 1.313 sec
TEST #0065 -> 1.312 sec
TEST #0066 -> 1.344 sec
TEST #0067 -> 1.297 sec
TEST #0068 -> 1.312 sec
TEST #0069 -> 1.344 sec
TEST #0070 -> 1.313 sec
TEST #0071 -> 1.312 sec
TEST #0072 -> 1.328 sec
TEST #0073 -> 1.313 sec
TEST #0074 -> 1.312 sec
TEST #0075 -> 1.344 sec
TEST #0076 -> 1.312 sec
TEST #0077 -> 1.313 sec
TEST #0078 -> 1.328 sec
TEST #0079 -> 1.313 sec
TEST #0080 -> 1.312 sec
TEST #0081 -> 1.344 sec
TEST #0082 -> 1.312 sec
TEST #0083 -> 1.313 sec
TEST #0084 -> 1.328 sec
TEST #0085 -> 1.312 sec
TEST #0086 -> 1.313 sec
TEST #0087 -> 1.344 sec
TEST #0088 -> 1.312 sec
TEST #0089 -> 1.313 sec
TEST #0090 -> 1.328 sec
TEST #0091 -> 1.312 sec
TEST #0092 -> 1.313 sec
TEST #0093 -> 1.344 sec
TEST #0094 -> 1.296 sec
TEST #0095 -> 1.329 sec
TEST #0096 -> 1.328 sec
TEST #0097 -> 1.312 sec
TEST #0098 -> 1.313 sec
TEST #0099 -> 1.328 sec
Test Count : 100, Avg Time : 1.32063 sec
D:\work\Bench01\Release>
Debug 모드로 컴파일 cmd 창에서 실행
D:\work\Bench01\Debug>bench01.exe
TEST #0000 -> 1.89 sec
TEST #0001 -> 1.891 sec
TEST #0002 -> 1.875 sec
TEST #0003 -> 1.891 sec
TEST #0004 -> 1.89 sec
TEST #0005 -> 1.891 sec
TEST #0006 -> 1.875 sec
TEST #0007 -> 1.906 sec
TEST #0008 -> 1.875 sec
TEST #0009 -> 1.891 sec
TEST #0010 -> 1.89 sec
TEST #0011 -> 1.891 sec
TEST #0012 -> 1.891 sec
TEST #0013 -> 1.89 sec
TEST #0014 -> 1.891 sec
TEST #0015 -> 1.891 sec
TEST #0016 -> 1.875 sec
TEST #0017 -> 1.89 sec
TEST #0018 -> 1.875 sec
TEST #0019 -> 1.891 sec
TEST #0020 -> 1.89 sec
TEST #0021 -> 1.875 sec
TEST #0022 -> 1.891 sec
TEST #0023 -> 1.938 sec
TEST #0024 -> 1.89 sec
TEST #0025 -> 1.875 sec
TEST #0026 -> 1.891 sec
TEST #0027 -> 1.89 sec
TEST #0028 -> 1.891 sec
TEST #0029 -> 1.891 sec
TEST #0030 -> 1.89 sec
TEST #0031 -> 1.891 sec
TEST #0032 -> 1.875 sec
TEST #0033 -> 1.906 sec
TEST #0034 -> 1.875 sec
TEST #0035 -> 1.891 sec
TEST #0036 -> 1.89 sec
TEST #0037 -> 1.891 sec
TEST #0038 -> 1.891 sec
TEST #0039 -> 1.89 sec
TEST #0040 -> 1.891 sec
TEST #0041 -> 1.891 sec
TEST #0042 -> 1.89 sec
TEST #0043 -> 1.875 sec
TEST #0044 -> 1.891 sec
TEST #0045 -> 1.875 sec
TEST #0046 -> 1.89 sec
TEST #0047 -> 1.875 sec
TEST #0048 -> 1.891 sec
TEST #0049 -> 1.891 sec
TEST #0050 -> 1.875 sec
TEST #0051 -> 1.89 sec
TEST #0052 -> 1.891 sec
TEST #0053 -> 1.891 sec
TEST #0054 -> 1.875 sec
TEST #0055 -> 1.89 sec
TEST #0056 -> 1.891 sec
TEST #0057 -> 1.875 sec
TEST #0058 -> 1.875 sec
TEST #0059 -> 1.89 sec
TEST #0060 -> 1.875 sec
TEST #0061 -> 1.891 sec
TEST #0062 -> 1.875 sec
TEST #0063 -> 1.891 sec
TEST #0064 -> 1.89 sec
TEST #0065 -> 1.891 sec
TEST #0066 -> 1.937 sec
TEST #0067 -> 1.891 sec
TEST #0068 -> 1.891 sec
TEST #0069 -> 1.89 sec
TEST #0070 -> 1.875 sec
TEST #0071 -> 1.86 sec
TEST #0072 -> 1.89 sec
TEST #0073 -> 1.891 sec
TEST #0074 -> 1.891 sec
TEST #0075 -> 1.89 sec
TEST #0076 -> 1.891 sec
TEST #0077 -> 1.89 sec
TEST #0078 -> 1.891 sec
TEST #0079 -> 1.891 sec
TEST #0080 -> 1.875 sec
TEST #0081 -> 1.89 sec
TEST #0082 -> 1.891 sec
TEST #0083 -> 1.891 sec
TEST #0084 -> 1.875 sec
TEST #0085 -> 1.937 sec
TEST #0086 -> 1.875 sec
TEST #0087 -> 1.891 sec
TEST #0088 -> 1.89 sec
TEST #0089 -> 1.875 sec
TEST #0090 -> 1.891 sec
TEST #0091 -> 1.891 sec
TEST #0092 -> 1.875 sec
TEST #0093 -> 1.89 sec
TEST #0094 -> 1.891 sec
TEST #0095 -> 1.89 sec
TEST #0096 -> 1.891 sec
TEST #0097 -> 1.891 sec
TEST #0098 -> 1.89 sec
TEST #0099 -> 1.891 sec
Test Count : 100, Avg Time : 1.88828 sec
D:\work\Bench01\Debug>
Java로 실행
C:\j2sdk1.4.2_02\bin>javac TestJava.java
C:\j2sdk1.4.2_02\bin>java TestJava
TEST #0 -> 2.156 sec
TEST #1 -> 2.141 sec
TEST #2 -> 2.125 sec
TEST #3 -> 2.187 sec
TEST #4 -> 2.141 sec
TEST #5 -> 2.14 sec
TEST #6 -> 2.141 sec
TEST #7 -> 2.141 sec
TEST #8 -> 2.14 sec
TEST #9 -> 2.125 sec
TEST #10 -> 2.141 sec
TEST #11 -> 2.125 sec
TEST #12 -> 2.156 sec
TEST #13 -> 2.141 sec
TEST #14 -> 2.14 sec
TEST #15 -> 2.141 sec
TEST #16 -> 2.141 sec
TEST #17 -> 2.14 sec
TEST #18 -> 2.141 sec
TEST #19 -> 2.14 sec
TEST #20 -> 2.141 sec
TEST #21 -> 2.125 sec
TEST #22 -> 2.141 sec
TEST #23 -> 2.125 sec
TEST #24 -> 2.14 sec
TEST #25 -> 2.141 sec
TEST #26 -> 2.141 sec
TEST #27 -> 2.14 sec
TEST #28 -> 2.141 sec
TEST #29 -> 2.14 sec
TEST #30 -> 2.141 sec
TEST #31 -> 2.141 sec
TEST #32 -> 2.14 sec
TEST #33 -> 2.125 sec
TEST #34 -> 2.141 sec
TEST #35 -> 2.141 sec
TEST #36 -> 2.14 sec
TEST #37 -> 2.141 sec
TEST #38 -> 2.125 sec
TEST #39 -> 2.14 sec
TEST #40 -> 2.141 sec
TEST #41 -> 2.188 sec
TEST #42 -> 2.14 sec
TEST #43 -> 2.141 sec
TEST #44 -> 2.14 sec
TEST #45 -> 2.125 sec
TEST #46 -> 2.141 sec
TEST #47 -> 2.141 sec
TEST #48 -> 2.14 sec
TEST #49 -> 2.141 sec
TEST #50 -> 2.125 sec
TEST #51 -> 2.156 sec
TEST #52 -> 2.14 sec
TEST #53 -> 2.125 sec
TEST #54 -> 2.125 sec
TEST #55 -> 2.141 sec
TEST #56 -> 2.125 sec
TEST #57 -> 2.141 sec
TEST #58 -> 2.14 sec
TEST #59 -> 2.141 sec
TEST #60 -> 2.141 sec
TEST #61 -> 2.14 sec
TEST #62 -> 2.156 sec
TEST #63 -> 2.141 sec
TEST #64 -> 2.125 sec
TEST #65 -> 2.141 sec
TEST #66 -> 2.14 sec
TEST #67 -> 2.125 sec
TEST #68 -> 2.141 sec
TEST #69 -> 2.141 sec
TEST #70 -> 2.14 sec
TEST #71 -> 2.141 sec
TEST #72 -> 2.14 sec
TEST #73 -> 2.141 sec
TEST #74 -> 2.141 sec
TEST #75 -> 2.14 sec
TEST #76 -> 2.141 sec
TEST #77 -> 2.141 sec
TEST #78 -> 2.14 sec
TEST #79 -> 2.188 sec
TEST #80 -> 2.14 sec
TEST #81 -> 2.141 sec
TEST #82 -> 2.125 sec
TEST #83 -> 2.141 sec
TEST #84 -> 2.14 sec
TEST #85 -> 2.141 sec
TEST #86 -> 2.14 sec
TEST #87 -> 2.141 sec
TEST #88 -> 2.141 sec
TEST #89 -> 2.14 sec
TEST #90 -> 2.141 sec
TEST #91 -> 2.141 sec
TEST #92 -> 2.14 sec
TEST #93 -> 2.141 sec
TEST #94 -> 2.125 sec
TEST #95 -> 2.14 sec
TEST #96 -> 2.141 sec
TEST #97 -> 2.125 sec
TEST #98 -> 2.156 sec
TEST #99 -> 2.141 sec
Test Count : 100, Avg Time : 2.140149999999997 sec
C:\j2sdk1.4.2_02\bin>
코드는 약간 손을 보았습니다. Java쪽은 거의 해본적이 없어서 문법이
잘 기억이 안났습니다. 그래서 조금 코드가 지저분합니다.
[code:1]$ cat TestCpp.cpp#include &l
제컴퓨터는 이상하네요 C++이 빠르네요...
근데 속도차이가 너무나는게, 옵티마이즈를 해서 그런가...
컴파일러도 똑똑하네요 :)
그리고 옵티마이즈 안해도 C++이 빠르네요.
[quote="eungkyu"]제컴퓨터는 이상하네요 C++이 빠르네요
실수, 제컴이 아니고 동아리컴이었습니다 :(
P4 2.8
Re: 흠.. 차이가 나는것 같습니다.
전 AMD Athlon 1G 512m 에 Win XP 인데...C 는 아직 안돌려보고
자바만 돌려봤는데 2.4~ 2.7 사이로 나오네요~~
CPU 차이가 나는데 이외로 성능차이가 않나서리...이상...
그리고 펜4 1.5 에 리눅스에서 돌릴결과~~~3.4 초 정도 걸리는군요~~`
역시 리눅스에서 자바는 느린건가???
Re: 심심해서.. 비교..
저번 답글 달때 모르고 언급을 안했는데, C++는 초단위로 재고 java는 밀리초단위로 재면 C++이 훨씬 불리하게 되겠죠...
그리고 상식적으로 생각해봐도 같은 단순한 사칙연산을 하는데, java가 c++보다 빠르면 비정상 아닌가요? 인터프리터랑 컴파일러 차이인데...
흠..
저는 컴파일러에 대해선 잘 모르지만
Java 는 실시간 optimization 을 한다고 들었거든요..
그래서 단순한 쪽에서는 Java 가 유리할거라고 생각하는데..
그쵸.. java의 hotspot 이나 jit 같은건 runtime에 o
그쵸.. java의 hotspot 이나 jit 같은건 runtime에 optimizing 합니다. c/c++ 같은건 compile time에 optimizing을 할수밖에 없죠. 따라서 java가 무조건 c/c++ 보다 느리다는 건 편견이라고 생각됩니다. java가 어떤 분야에서는 더 빠를수도 있다고 생각됩니다.
글구 hotspot 이나 jit도 runtime때 native로 동적 혹
글구 hotspot 이나 jit도 runtime때 native로 동적 혹은 정적으로 컴팔 하거덩요..