|
| Posted by 최재일 | 2005-11-14 12:10:30, Hit : 5681 | |
|
|
|
500,000번 반복시키는 자바 코드입니다. ----------------------------------------------------------- class SystemExam { public static void main(String args[]) { long start, end; start = System.currentTimeMillis(); System.out.println("현재 시간 : " + start); // 1970년 1월 1일부터 현재까지의 시간을 밀리초로 반환 System.out.println("500,000회의 loop를 반복 시작");
for(int i=0; i < 500000; i++);
System.out.println("500,000회의 loop를 반복 종료"); end = System.currentTimeMillis(); System.out.println("반복 종료 시간 : " + end); System.out.println("반복 소요된 시간 : " + (end - start)); } } ------------------------------------------------------------ 시스템 성능에 따라 다르겠지만, 제가 테스트해본 결과.. 10밀리초가량 걸리네요 ㅡㅡㅋ
창조로 위와 비슷하게 코딩하여보았습니다. ------------------------------------------------------------ 실수 : 시작시간, 종료시간; 실수 : 수; 수 := 0;
메모0.내용.추가("500,000의 반복문을 반복 시작"); 시작시간 := (시각시풀어(현재시간)*3600)+(시각분풀어(현재시간)*60)+시각초풀어(현재시간)+(시각밀리풀어(현재시간)*0.001); 메모0.내용.추가("현재 시간 : " + 수를문(시각시풀어(현재시간))+"시 "+수를문(시각분풀어(현재시간))+"분 "+수를문(시각초풀어(현재시간))+"."+수를문(시각밀리풀어(현재시간))+"초");
반복 { 수 := 수 + 1;} 까지 (수 > 500000);
종료시간 := (시각시풀어(현재시간)*3600)+(시각분풀어(현재시간)*60)+시각초풀어(현재시간)+(시각밀리풀어(현재시간)*0.001); 메모0.내용.추가("500,000의 반복문을 반복 종료"); 메모0.내용.추가("반복 종료 시간 : " + 수를문(시각시풀어(현재시간))+"시 "+수를문(시각분풀어(현재시간))+"분 "+수를문(시각초풀어(현재시간))+"."+수를문(시각밀리풀어(현재시간))+"초"); 메모0.내용.추가("반복에 소요된 시간 : " + 수를문(종료시간-시작시간)+"초"); ------------------------------------------------------------ 이 코드로 500,000회 반복시켜보니 소요시간이 140초가량.. OTL
음.. 10밀리초와 140초라....... 엄청난 속도차이;; |
|
|
최재일 2005-11-14 PM 12:15:13 |
|
|
|
되풀이 (수 < 500000)
수 := 수 + 1;
로 해도 140초가량 비슷하게 걸리네염;; |
|
|
지상현 2005-11-14 PM 5:42:40 |
|
|
|
자바도 느린 편에 속합니다;; 물론 JIT를 사용하면 어느 정도 나오겠지만요.
자바도 인터프리터거든요... 다만 최적화 상태에 따라 다르겠죠.
참고로 C나 델파이로 짠 것은 더 빠릅니다;;
자바가 그런 것들의 최대 반 정도의 성능을 낸다고 합니다. |
|
|
qkrwhdgns 2005-11-14 PM 7:25:06 |
|
|
|
창조도.. 속도개선과.. 메모리 점유률을 나추어야 하는데...... |
|
|
최재일 2005-11-15 AM 10:14:34 |
|
|
|
음.. 역시나 속도;;;;
창조도 델파이로 만든걸로 알고 있는데 창조는 왜이리 느릴까요?? |
|
|
고감자 2005-11-15 AM 10:30:27 |
|
|
|
자바 절대 느린 언어가 아닙니다. 전에 C++하고 속도 비교를 한 통계를 본적이 있는데 그리 차이가 나지 않더군요. 물론 C하고 비교를 해서는 안되죠. ^^ |
|
|
고감자 2005-11-15 AM 10:36:58 |
|
|
|
프로그램을 만들고자 함은 개발자의 생각을 어느 틀(언어)안에 넣어서 만드는것이라 생각됩니다. 그 틀에 따라서 개발자의 생각의 폭도 넓어지죠. 저는 어느정도 속도를 희생하더라도 그런 자유로운 틀안에서 놀고싶은 마음 뿐이네요.
게다가 프로그램이 커지면 커질수록 언어적인 속도에 종속되기 보다는 개발자의 알고리즘적 테크닉에 훨씬더 영향을 많이 받죠.
같은 프로그램을 C로 Java로 짰는데 Java가 훨씬 빠를 경우가 많습니다. 바로 이런 사례들이 알고리즘적 테크닉의 중요한 증거라 할수 있죠. |
|
|
고감자 2005-11-15 AM 10:42:30 |
|
|
|
물론 제가 이 자리에서 바로 사용할수 있는 언어는 C, Python, Java정도가 됩니다.
하루에 이 세가지 언어를 다 사용해서 업무를 보는게 예사인데요.
재미로 치자면 Python이 코딩하는 재미가 제일 많고.
그다음이 C 마지막이 Java입니다.
Java는 쓸데없는 코딩량이 많아서 이클립스가 아니면 코딩량을 감당 못합니다. 그치만 Java는 안정적이라서 DB 핸들링할때 주로 쓰죠. |
|
|
qkrwhdgns 2005-11-15 PM 7:02:21 |
|
|
|
저는.. 이자리 에서.. 가장 잘 다루는 언어는.. '우리어'..
바로 창조;;;;; 다른것은 전무;; |
|
|
지상현 2005-11-15 PM 7:29:28 |
|
|
|
물론 당연히 언어에 특성에 따라 알맞는 언어를 선택해야 한다는 사실은 알고 있습니다.
그렇지만 제가 말한 것은, 프로그래머의 능력이 개입되지 않는...
언어 자체만의 성능을 두고 판단한 것이지요 ^^
똑같이 짜도 자바쪽이 더 느린 것은 사실입니다.(그게 사람이 느낄 수 있는 속도인지는 의문이지만)
여튼 저는 단순히 언어적인 특성에서 속도 비교를 한 것인데, 다른 분께 자바가 C보다 느리다라는 인상을 심어줬다면 제가 잘못 말한거겠죠. |
|
|
지상현 2005-11-15 PM 7:31:53 |
|
|
|
자바쪽이 C, C++ 보다 좀 더 고급 언어이고, 또한 왠만한 직접 접근은 제한하고 있습니다. 그 외에 가비지 컬렉션 같은 고급 언어의 수많은 부가 기능을 지원하고 있기 때문에.... 아무리 똑같이 짜도 오버헤드는 있기 마련입니다.
항상 오버헤드는 있습니다. 어셈으로 코딩 하면 가장 빠른 것이 오버헤드가 가장 적기 때문이죠.
다만 이식성에서는 자바쪽이 훨씬 유리하다는 장점이 있죠.
그러니까 속도를 보고 언어를 결정하는 것은 바보짓이라는 겁니다.
다만, 굳이 속도를 따진다면 자바보다는 C++가 더 우위라는 것입니다. |
|
|
지상현 2005-11-15 PM 7:34:39 |
|
|
|
한마디만 더 강조...^^
느리다고 하는 것은 어디까지나 상대적인 것일 뿐, 절대적인 기준이 아닙니다.
예를 들어, 100m 달리기를 했을 때 1등이 9초고 2등이 8.99 초였으면, 2등은 분명 1등보다 느린 것이지요.
느린건 느린겁니다. 다만 그 차이가 얼마나 작느냐가 중요한 것이지요.
다시 한번 말씀드리지만 자바는 언어 자체적 특성 때문에 같은 시스템과 같은 알고리즘, 같은 수준의 컴파일러 최적화에서 C++ 보다 빠를 수는 없죠. C++보다 고려해야 할 것이 더 많으니까요. 다만 어느 정도까지 속도가 비슷해지냐가 관건이 될 것입니다.
혹여나 하는 말인데, 그렇다고 무조건 C++가 좋다는 것은 아닙니다. |
|
|
최재일 2005-11-16 PM 8:54:42 |
|
|
|
근데 어쩌다 C 애기가;;;;
난 창조랑 자바랑 비교했던건데여,,
창조는 좀더 빨리질 수 없나;; |
|
|
지상현 2005-11-16 PM 9:19:51 |
|
|
|
남상기님께서 최적화를 하셔야;; |
|
|
지우개 Expert 3.0 제작자 : 천호성 님 [LINK] |
|
|
|
대박로또2005 제작자 : 최재일 님 [LINK] |
|
|
1 | 박종훈 님 | 15292 점 | |
2 | 지상현 님 | 8809 점 | |
3 | 손상진 님 | 7388 점 | |
4 | 권선중 님 | 6060 점 | |
5 | 이진백 님 | 5174 점 | |
|
|
|
가입일 | 닉네임 |
05/31 | 김동률 |
03/31 | 홍형기 |
09/01 | o00pp99oo |
12/27 | 이재민 |
11/20 | 이희철 |
|
|
|
|
. |
. |
. |
|