C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[4044] Re:C#이나 자바가 C++보더 더 빠를 수도 있는 이유?
바람 [] 3856 읽음    2002-03-28 18:00
궁그미 님이 쓰신 글 :
: Applied Microsoft .NET Framework Programming
:
: 이 책에보면 중간단계의 컴파일과정을 거치는 언어들이 바로 native code를 생성하는 언어보다 더 빠를 수도 있는 이유를 몇가지 들었는데요. 두가지 정도가 있습니다.
:
: 첫번째로 현재 프로그램이 수행되는 CPU를 인식해서 해당 CPU에 가장 최적화된 native code를 실행시간에 만들 수 있라는 것입니다. 같은 인텔 CPU라도 기종에 따라 좀 더 최적화된 코드를 만들 수 있다고 하네요.
: 두번째는 해석이 잘 안되서..ㅡㅡ;;
:
: The CLR could profile the code's execution and recompile the IL into native code while the application runs. The recomplied code could be reorganized to reduce incorrect branch redictions depending on the observed executed patterns.

<<번역>>
CLR 은 실행코드를 profile하기때문에 응용프로그램이 실행하는동안에 중간코드(IL)을 native 코드로 재컴파일한다. 재컴파일된 코드는 실행되는 유형에 따라서 잘못 실행되는 분기를 줄어들어 재구성할수 있다. ==> 대충 이런 내용이내요. (컴파일러와 관련된 내용이내요)

: 즉, 클라이언트의 OS에 맞추어서 컴파일된는 정도를 넘어서 CPU에 맞추어진 코드를 생산할 수 있다면 C++보다 더 빨라질수도 있다라는 얘기같습니다.
:
: 질문
: 1. 위 내용에 대해 어떻게 생각하세요? (그럴리가 없다든지..^^;;)

가능한 얘기입니다. 물론 자바도 마찬가지이구요. 다만. 전제조건이 메모리가 엄청나게 많아야
한다는 겁니다. 중간코드를 다시 컴파일 할려면 기존의 응용프로그램이 메모리에 모두 올라가야
되구요... (이럴경우 Lock에 대해서도 궁금한데... 누구 아시는 분 설명좀 부탁드립니다.)
또다른 문제점은 반드시 처음 실행할때는 다소 느리다는 거죠....  왜냐구요?
profile을 할려면 최소한 한번은 실행을 해야 하걸랑요.
프로그램이 실행이 되어야 성능을 체크하죠... 게다가 각종 리소스를 메모리로 가져와야 하는데...
물론 닷넷이 완성될 쯤이면 PC들이 모두 메모리 1기가 이상의 기본 사양을 가지고 있겠죠?
하지만 요즘은 C++도 마찬가지입니다. DLL화일이 물론 좀 작기는 하지만...
MFC.DLL, xxx.bpl등등...
MFC는 기본적으로 OS에 로딩되어 있으니 별루 잘 못느끼죠...
C++빌더 같은 경우는 불리한 면이 없진 않죠...
하지만 자바나 닷넷의 경우와는 많이 다릅니다.  무겁죠. 한마디로...

: 2. 보통 C++가 C#이나 자바보다 우월한 점이 속도라고 알고 있습니다. 그리고 low level의 메모리 핸들링과 Generic Programming.. 이정도 생각이 나는데요. 어제 기사를 읽으니까 미국의 대학들이 필수프로그래밍 언어를 C++에서 자바로 변경하고 있다고 하네요. (MIT도 있던데요.)
: C++만이 가능한 다른 언어가 절대 넘볼수 없는 그런 영역이 있을까요? C++로 윈도애플리케이션 개발하는 것은 이제 점점 없어지지 않을까요? 어려운 C++ 공부하면서 자바나 C#도 할 수 있는 그런거 만드는 것 보다 C++만이 가능한 그런 영역을 집중적으로 파고 싶습니다. (low level 영역은 제외하구요. 하드웨어는 넘 어려워서..^^;;)

반드시 속도만은 아닙니다. 대부분의 요즘 OS가 C또는 C++로 개발되고 있다는 것 쯤은 아시죠?
로레벨이라고 하셨는데 로레벨의 기준이 뭐죠?
시스템 프로그래밍? 아니면 하드웨어 제어?
실제 그정도면 어셈블리로 하죠...
가독성이 어려워서 그렇지 속도로 치면 왔땀다.
우리나라 대학들도 자바 가르치는데 많습니다.  제가 생각하기에 대학에서는
여러가지 언어를 가르쳐야 한다고 생각합니다.  그래야 특성을 알고 업무에 맞게 적용
할 수가 있으니깐요... PDA나 휴대폰에 코볼 가지고 하는곳은 없죠.
지금 DB응용프로그램 개발하는데 C++ 사용하는 사람은 거의 없죠.
대부분 엔진은 C, C++로 개발하고 그외는 비베, 파워빌더, 델파이...

개인적인 생각은요...
프로그래밍언어는 나름대로의 특성을 가지고 태어납니다.
나름대로의 용도도 있겠죠?  COBOL, ADA, PASCAL, FORTRAN, PHP...
언어가 무려 천가지가 넘는다죠 아마?

언어 한가지만 알면 다른 언어에 적응하기 쉽다구요...
저는 학교다닐 때 C 했걸랑요... 파스칼이 죽어도 싫었습니다.
(언어를 두개이상 배운다는거는 완전히 인력낭비라고 생각했거던요)
지금도 그 생각은 변함이 없습니다.
C++을 한거는 syntax가 C와 비슷한 점이 많아서구요...
그렇다고 다른 언어를 못하는건 아닙니다.
레프런스 한권보면 웬만한건 다 하지요...

쟁이의 사고가 필요한 때인것 같군요.
영어로 엔지니어라고 하죠.  프로그래머도 일종의 엔지니어죠...
혹시 주위에 그런 사람 보신 적 있습니까?
C++하면 떠오르는 사람,
Delphi하면 떠오르는 사람.
무엇을 물어봐도 그 계통에는 도가 튼 사람.

요즘같이 시류에 따라서 또는 취직하려고 이 언어, 저 언어 기웃거리다가 맛만 보고
나오는 사람들이 많죠.  무슨 언어든지 간에 제대로 알려면
최소 6개월 이상은 그 언어와 씨름을 해야 합니다.
쉽다, 어렵다는 그 전에 판단해서는 안되죠...

지금 자바 한다는 사람들, C++ 한다는 사람들, 프로그램 잘~~짭니다.
하지만 1부터 100까지 더하는 프로그램 짜라면,
또는 화일 복사 프로그램 짜라고 하면 많이들 더듬거립니다.
기초가 안된 덕분이죠.
다들 다른 곳에서 블럭 카피, 붙여넣기 한 덕택이죠.....
너무 길어서 죄송합니다....
기초를 닦고,,, 한 우물만 계속파면 뭔가가 보이기 시작할 겁니다.
열심히 하십시요....
peccato [peccato]   2002-03-28 20:57 X
좋은글이네요 ^^;

+ -

관련 글 리스트
4043 C#이나 자바가 C++보더 더 빠를 수도 있는 이유? 궁그미 3205 2002/03/28
4058     Re:C#이나 자바가 C++보더 더 빠를 수도 있는 이유? 박지훈.임프 6071 2002/03/29
4044     Re:C#이나 자바가 C++보더 더 빠를 수도 있는 이유? 바람 3856 2002/03/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.