본문 바로가기

Robotics/discussion

JAVA vs C++



이것이 의미가 있는것인지는 모르겠다. 언어마다 서로 장단점이 있으니 좋다 나쁘다를 판가름 하는것이..
나는 90년도 후반에 처음 JAVA를 접했는데, 그당시에는 기껏해봐야 펜티엄 2, 펜티엄 3정도 되는 사양의 컴퓨터를 사용하고 있었는데, JAVA가 이식성이 좋아서(O/S 독립적) 앞으로 많이 사용할 것이라는 이야기는 그당시에도 많이 들었다. 하지만, C나 C++에서 생성된 executable file의 실행속도에 비하면 JAVA는 너무나도 느렸기에 나는 JAVA는 선호하지 않았다. 그당시에 JAVA 버젼이 2.0인걸로 기억한다.

최근에 여러 프로그래머들의 블로거의 글들이나 실제 엔지니어들의 이야기를 들어보면, 이제 상황은 조금 달라진것 같다. JAVA가 C++과 대등한 속도를 내거나 오히려 더 빠른 속도를 낸다는 것이다.

무슨 근거로?

당장에 googling만 하면 두 언어의 속도비교 benchmark 자료를 어렵지 않게 볼 수 있다.

http://keithlea.com/javabench/index "The Java is Faster than C++ and C++ Sucks Unbiased Benchmark"
위 사이트의 글은 2003년도에 쓰여졌다. 이 저자도 사람들이 JAVA가 느리다고 하는데, 사실은 JAVA가 더 빠르다는 것을 알려주고 있다. Reference 웹사이트에 가봐도 이 저자의 말이 틀리지 않았다는 것을 데이터로 증명하고 있었다.

Links / Responses


JAVA가 더 빠르다고 해서 c++이 사라지는 일은 없겠지만, 적어도 JAVA가 C++보다는 일반적인 경우 상대적으로 빠르다라는 사실은 알았다.

추가
성능비교는 JAVA의 경우 JIT컴파일 한 것이라고 한다. 다시말하면, JAVA의 바이트코드가 JIT컴파일을 통해 기계어로 변환되는 과정을 거쳐서 실행된다는 것이다. 기존의 인터프리팅 방식이라면 당연히 C++과 비교했을때 성능차이는 분명 났을것...