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

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[24021] 말로만 설왕설래 하지 말고,,, 닷넷 vs Native 코드 베틀 제안합니다
코드웍 [codeworks] 7846 읽음    2013-07-02 21:54
프로그래밍을 입으로 하는 것도 아니고,,, 실제로 닷넷과 네이티브의 실행성능이 어느 정도 차이나는지
코드 베틀로 겨뤄 보기를 제안 합니다.

시간이 너무 걸리면 곤란하니까,,, 간단한 MP3 엔코더를 만들어서 비교해 보면 좋을 듯 싶습니다.

3분 40초 정도 길이의 audio_data.wav파일과 MP3 엔코더 소스를 압축해서 올립니다.
mp3 엔코더 소스는 간단하니까 C++ 빌더를 이용해도 좋고,,, 델파이를 이용해도 좋고,,,
참고로 올린 MP3 엔코더 소스가 싫으면 ffmpeg을 이용해도 좋습니다.

MP3 엔코딩이 씨피유 연산을 많이 먹으니까,,, 실행성능을 비교하는데 좋은 지표가 될 겁니다.
압축파일로 올린 audio_data.wav 파일을 128Kbps 음질로 엔코딩해서 MP3 파일 만들어 내는데
걸리는 시간을 실행성능 판가름 하는 기준으로 삼기로 합니다.

프로그램 만들어서 이번주 토요일 까지,,, 자료실에 올려주면 됩니다. 단, 실행파일은 성능 측정의
편의를 위해서 GUI가 아닌 Console 형태로 올리기로 합니다.

자신만의 특별한 코딩 테크닉이 드러나는 것을 원치 않으면 소스코드 포함해서 올릴 필요는 없습니다.
닷넷과 네이티브의 실행성능 비교가 목적이니까,,, 실행파일만 올려도 됩니다.

김태선님, 린님, 임프님 등은 닷넷이 느리다고 주장하니까,,, 네이티브 코드 짜서 올리면 될테고,,,
지나다가님은 뭐 엄청 고수시니까 닷넷으로 짜서 올리면 되겠네요..

말로는 뭔 말을 못하겠습니까,,, 말로만 설왕설래 하지말고 실제적으로 자신의 코딩 실력이
얼마나 되는지 공개적인 자리에서 검증도 해보고,,, 이번 기회에 코드 배틀 해볼 것을 제안합니다.,,,

크레브 [kkol]   2013-07-02 22:11 X
전 mp3 엔코더를 간단하게 만들 실력이 안되서
코딩을 입(토론)으로 하거나 , 글(문서)로 하거나 머리(생각)로 하는걸 좋아합니다.
직접 c#과 C++로 해보시고 결과를 공유해주시면  다른 분들에게도 좋은 정보가 되겠네요~
최원식 [s193382]   2013-07-02 22:41 X
코드웍님, 열정에 정말 감동을 받았습니다. 저는 델파이로 멀티 쓰레드와 패스트 허프만 코딩만으로도 토요일까지는 작성을 할 수 있는 능력이 되지 않아서, 사전 낙오 1등이 된 개발자입니다. 다만, 올려주신 소스를 바이너리로 만들어주신다면, 제 PC에서 계속 비교를 해보면서, 성능을 개선할 수 있을 것 같습니다. 시간 걸려도, 순수 델파이 코드로 풀 인코딩/디코딩을 해보고 싶은 생각에 이렇게 낙오자가 무례하게 부탁을 드려서 죄송합니다.
civilian [civilian]   2013-07-02 22:42 X
첨부된 소스는 닷넷이 아닌 C코드 아닌가요?
civilian [civilian]   2013-07-02 22:45 X
비교가 되려면 닷넷의 C#으로 엔코더/디코더를 만들고, 델파이나 C++빌더로 엔코더/디코더를
만들어 성능을 비교해야지요.
Lyn [tohnokanna]   2013-07-02 23:28 X
Native는 이미 글쓰신분이 코드 올렸으니 빌드만 하면 될거고 닷넷으로 만든거 올라오는거 기다리기만 하면 되겠네요

그럼 깔끔하게 테스트 끝날테니
김모씨 [testcode]   2013-07-03 01:09 X
VM 위에 올라가는 건 빠를 수 없습니다 그 이상의 오버헤드가 있기 때문입니다. 20세기 말 컴이 느릴 때 자바부터 지금의 안드로이드까지 기본적인 상황에서 VM 위에 올라간 것들은 네이티브보다 빠를 수 없습니다.

메모리에 1~2기가 데이터를 올려서 사용하는 캐싱 서버를 구현하고 1~2천 더미 유저가 램덤하게 데이터 요청하면 어떻게 될까요? 빠를까요? 닷넷이?
깔쌈보이 [handsome]   2013-07-03 07:17 X
제가 이미 적었지만, 순간반응... 파일 입츨력을 포함하면 당근 닷넷이 구립니다.
버튼 눌러서 해당 파일을 몽땅 메모리에 올리고 다음 버튼은 프로세싱하고 다음 버튼 누르면 저장하는식으로 하면 달라집니다.
이성호 [shlee0613]   2013-07-03 08:51 X
닷넷과 네이티브의 성능을 비교하는건 무의미 하지 않나요? 비교 해보나 마나 당연히 닷넷이 느리지요.
특히 CPU 연산이 많이 들어가는 이런 루틴에서는... 하지만 그러매도 불구하고 닷넷이 네이티브 보다 매력적인 분야가 있다는거죠.
성능이 요구되는 분야는 네이티브로 생산성이 요구되는 분야는 닷넷으로 두개의 조합이 필요한 분야는 섞어서 이렇게 말이죠.
논쟁을 위한 비생산적인 논쟁은 지양했으면 합니다.
civilian [civilian]   2013-07-03 08:51 X
JDk의 성능이 상당히 향상되었군요.
이경문 [gilgil]   2013-07-03 12:11 X
제대로 된 코드 배틀을 하려면 mp3 encoder & decoder의 core module(PCM raw data을 주파수 데이터로 변환, 양자화 테이블을 이용해 사람에게 민감하지 않은 데이터를 손실시키기, 압축 알고리즘 등등)이 각 언어(C/C#/Pascal)마다 각각 있어야 비교가 가능한데, C 언어만 달랑 제시해 놓은 상태에서 비교를 할 수 있을까요?

설마 같은 core module에 대해 호출(call)만 다른 언어(wrapper module)로 구현해 놓고 비교를 하자는 얘기는 아니겠죠?

project(lovekorea), 화요일(tuesday), 코드웍(codeworks)... 앞뒤 정황을 보니 모두 동일인으로 보이네요. 그리 좋은 모습은 아닌 것 같군요.
크레브 [kkol]   2013-07-03 12:37 X
자신의 프로젝트에 적당하다고 생각하는 개발툴, 개발언어 쓰면 그만이죠! 소모적인 논쟁일뿐!
망치 [mangchy]   2013-07-03 13:25 X
이게좋네, 저게 좋네 하는 흑백가리는건 별로 좋아하지 않지만 그래도 재미있네요.
조용하던 게시판이 코드 배틀을 하자니 과연 어떤 결과가 나올지도 궁금하고 댓글들도 재미있고요. ^^
전 실력이 안되어서 ... 다들 화이팅입니다.
남병철.레조 [lezo]   2013-07-03 14:02 X
루아의 경우이지만 JIT 컴파일러를 통하게 되면 성능 향상은 기존보다 상당히 올라가는것은 사실입니다.
http://luajit.org/performance_x86.html

하지만 네이티브와는 여전히 벽이 큽니다. 테스트를 하신다면 위 링크에 있는 벤치마크 경우들을 참고 바랍니다.
남병철.레조 [lezo]   2013-07-03 15:02 X
흠.. 하지만 JIT이 만든 네이티브 바이너리 캐쉬가 어느정도 성능인지 궁금하네요.
다른 글에서 Lyn님이 지적한 대로 GC의 문제는 자바도 그렇지만 Manage Code의 한계입니다. 계속 네이티브와 경쟁하게 되면 메모리 관리 풀을 써야할테고 성능 향상을 위해 미리 확보하기 시작하면 메모리 효율성은 떨어지게 됩니다.

포터블을 주장한다면 모르겠지만 네이티브 성능을 뛰어 넘겠다는것은 말이 안됩니다. 된다면... 네이티브에 근접하겠다는 것인데...
어느정도의 실효성을 가질지는 두고 볼 일입니다.
Lyn [tohnokanna]   2013-07-03 15:32 X
레조 //JIT 자체가 만든 코드는 보통 일반적인 Native 코드보다 성능이 더 좋습니다.

아무래도 언어자체가 좀 타이트 하다보니 최적화 하기에 유용한 정보가 많고(C++은 아직도 포인터 들어가면 최적화 시망... C/C++도 최적화에 불리하다고 포트란으로 영상처리 하는 사람도 봣음...) 거의 대부분 바이너리로 배포하는 Windows 특성상 특정 CPU에서만 지원하는 인스트럭션셋을 맘대로 쓸수 없는데 닷넷 JIT은 어차피 여기서만 돌면 되니까 꼴리는데로 갖다 쓸수 있으니까요...

뭐 몇몇 속도 위주의 라이브러리 (ex : Ipp) 는 CPU 별로 따로 코드 만들어두고 내부에서 Init 할때 CPU 종류 체크해서 바꾸는 식으로 해결 합니다.

Lyn [tohnokanna]   2013-07-03 15:33 X
단 위의 경우는 "같은코드" 를 실행한다는가정하에고...

아무래도 VM 의 경우는 레퍼런스 카운팅이라던가 범위체크라던가 이런 별도의 처리가 들어가고.... 만악의 근원 GC가 속도를 들쭉날쭉하게 하기때문에.... GG
남병철.레조 [lezo]   2013-07-03 16:48 X
Lyn // 같은 코드일 경우 결국 OS 최적화가 더 된다라...

첫 시작에 JIT 컴파일타임 잡아먹는것 빼고는 정말 아무런 제약이 없고 심지어 더 빠르다는 말이 되는군요. GC빼고...
흠... 낚이면 안되는데... 일도 바쁜데... 저녁에는 운동도 하고 글도 써야하고... 아... 확인해 보고 싶다. ㅎㅎ

MS가 자랑하는 JIT의 성능 최적화가 어려운 상황도 있을텐데 흠...
이렇게 무적 분위기로 몰고가는건 MS의 영업 전략에 호도 당하는 것인듯. (물론 그만큼 신빙성 있게 잘 만들었다는 이유도 되겠네요.)
기술에 미신은 필요 없고 이론에 대한 다양한 벤치마킹을 통해 실제에서도 그런지 비교하는게 답이긴 합니다.
이정욱 [midmee]   2013-07-03 17:24 X
그냥.. 자신이 잘 쓰는 언어를 사용하면 됩니다...
엄청나게 빠르다고 소문난 언어를 가지고도 엄청나게 느리게 만드는 재주가 있는 프로그래머가 있는가 하면, 엄청나게 느리다고 소문난 언어를 가지고도 꽤 빠르게 동작하는 프로그램을 만드는 프로그래머도 봤습니다.
자신있는것 사용하는것이 가장 문제없는 코드와 구조를 만들수 있습니다...
그러므로 별로 중요하지 않은 문제는 패스~
양병규 [bkyang]   2013-07-03 18:30 X

공고 시절 전자계산기 실습시간에 반 친구들하고 논쟁을 벌였었습니다.

저를 비롯해서 대부분의 반 친구들은 GW BASIC으로 코딩하고 있었는데..
공부 드럽게 못하고 못생긴 어떤 녀석은 한 바이트 한 바이트씩 기계어를 쳐 넣고 있었죠.

우리는 그 녀석한테 "왜 그리 개고생을 하냐... IF THEN.. FOR.. CASE 얼마나 쉽고 빠르냐..했더니..
그 녀석은 기계어에 비하면 베이직은 굼벵이 하품하는 속도다..라고 하고...
우리는 니 코딩이 더 굼벵이다...라면서 논쟁이 시작됐었죠.

그 때가 84년이었는데....
그 후로도 30여년 지난 지금까지
수 많은 논쟁이 있었는데.. 시원하게 결론이 난 적은 없는 것 같습니다.

시대가 다르고 환경이 다르고 취향도 다르고... 다른 점이 너무 많아서 직접 비교해서 결론을 내기는 쉽지 않죠.
자기 칼이 좋다고 다투지들 말고 검술을 더 연마하심이....

^^;
개발자임 [abcde12345]   2013-07-03 20:38 X
2000년초에 한델에서 있었던 VC++하고 델파이하고 속도 비교하는 꼴이네요. ㅎㅎㅎ
이런 무의미한데 왜 목매는지 거참....

속도와 퍼포먼스 때문에 적어봅니다. 저도 2000년초에 비베가 어떠니 네이티브가 어떠니 저떠니 했었고 C로 서버를 짰었습니다.

지금은 자바로 합니다. 왜요?... C가 훨더 빠를텐데?? 왜요??

유지보수, 관련 모듈등 지원이 훨씬 좋아요.. 지금이 286, 386시절도 아니고.. 즉. 지금 시대는 이 언어가, 이개발툴이 얼마나 빠르냐가 아니라.

개발 편의성, 유지보수, 개발자 수급, 관련 연계 확장성 이런게 몇배는 중요한 시기가 되었습니다.
느리다구요??.. 그럼 서버를 증설하면 되죠.. 그게 훨씬 싸게 먹힙니다. 훠어어얼씬~

요즘시대에도 개발툴이나 개발언어에 목매는 개발자가 있긴하네요. 흠흠..

틀린소리 나올수도 있는거지.....거참.
남병철.레조 [lezo]   2013-07-03 22:12 X
경험에서 우러나온 고수님들의 의견이 있지만... 코드 배틀 계속 가는것 맞는 것이죠? ^^;

저는 이런 학생때하던 테스트 마인드가 참 좋은것 같습니다. 비록 요즘은 일에 치이고 사회 생활에 휘둘리느라 뒷전이지만 그래도 그 초심의 실험 정신이 좋다고 생각합니다.

다양한 경우의 테스트가 나왔으면 좋겠습니다. 간단한 것부터 좀 긴것까지.. :)
미니어스 [minias]   2013-07-03 23:25 X
이글 댓글 남기기위해 첨 가입했습니다.

소모성이 아닌 생산적인 effect를 만드는 측면에 이런 내용이 많아졌음 좋겠습니다.
어떤언어가 좋냐/나쁘냐의 중요함 보다 이런 행위를 통해 얻는 반사이익이 많아진다고 느끼기 때문이죠 (side effect)

물론 뛰어나신분들은 "똥인지 된장인지 찍어봐야 아는가?" 할 수도 이겠습니다만은..
몰랐던 사람들에게는 이 글 하나가 모멘텀(momentum)되고, 동기부여와 자극이 된다는 점에서 많아졌으면 하는 생각입니다.
Lyn [tohnokanna]   2013-07-04 09:24 X
개발자임 // 증설할수 있는 서버가 있고 증설할수 없는 서버가 있습니다.
Lyn [tohnokanna]   2013-07-04 09:28 X
개발자임 // 남 비꼬는 소리 하려면 면상 내밀고 하세요. 아이디 새로만들어서 생쇼하지말고
개발자임 [abcde12345]   2013-07-04 17:19 X
Lyn [tohnokanna]   2013-07-04 09:24 X
개발자임 // 증설할수 있는 서버가 있고 증설할수 없는 서버가 있습니다.
==>
lyn// 전에 직접쓴 댓글대로 어떻게 XX같이 서버의 구조를 짜놨으면 증설이 안됩니까???

Lyn [tohnokanna]   2013-07-04 09:28 X
개발자임 // 남 비꼬는 소리 하려면 면상 내밀고 하세요. 아이디 새로만들어서 생쇼하지말고
==>
이하 Lyn// 에게 Lyn과  같은 수준으로 글 써줍니다.
--------------------------------------------------------------------------------------------
면상??? 생쇼??ㅋㅋㅋ...  다른 사람이 그렇게 얘기하면 받아 주겠어. 근데
니 댓글들 봐바 너만큼 남 비꼬면서 말하는 성격이상자가 있나?. 니 댓글들이 죄다 잘난체에 위에서 깔보듯 싸질러놓은 놨고...
지금 이런 일도 니가 비꼬면서 써놓은거라는거 몰라서 그러니?? 넌 기술관련 책보다 인성관련 책부터 봐라.

책추천 해줄께:배려, 인생을 행복하게 해주는 것,

왜 니가 맨날 쓰던 댓글들의 수준을 니가 받아보니 기분 나쁘니?... 니가 그렇게 했으면 너도 그렇게 당해야지?? 성격 장애자 맞구나? ㅋㅋ

얼굴 보고 싶어? 그럼 여기로와 강남이야. 보여줄께.. 수준참.. 쯔쯔...
Lyn [tohnokanna]   2013-07-04 17:30 X
마침 잘됬네.. 나도 강남이다.

오늘은 선약이 있어서 무리고 다음주에 7시쯤에 장소 잡아라 찾아가마
Lyn [tohnokanna]   2013-07-04 17:32 X
세상엔 설계와는 상관 없는 물리적인 한계라는게 있는거다. 반응속도라는거 말이지.
Lyn [tohnokanna]   2013-07-04 17:34 X
나야 기분 나쁠거 있나? 니 성격도 똑같이 장애가 있다는걸 알았으니 좋은 동지가 생겻는데.
박무개 [bigheart]   2013-07-04 23:05 X
갈수록 찌질이들이 보이네. 기술은 선비급인데... 고마해라. 모처럼 포럼 분위기 살라 카는데, 재 뿌리지 말고.



박무개 [bigheart]   2013-07-04 23:10 X
그럴 시간에 코딩 배틀 참여 하삼.  모처럼 분위기 좋은 논쟁 떴는데, 동참하세요. 씰데없이 감정싸움하지 말고...
크레브 [kkol]   2013-07-04 23:37 X
코딩 배틀이니 뭐니 하고 싶으신 분들은 남보고 참여하라 마시고 본인이 직접 하시는게 좋지 않을까요?
쓸데없는 짓이라고 생각하니 안하는겁니다. 그럴 시간도 아깝고 .
결국 논리로 서로 의견 조절이 안되면 그냥 그렇게 각자의 주장대로 생각하고 살면되지요.

개발자임 [abcde12345]   2013-07-05 09:43 X
Lyn// 다음주.... 풉.... 깡도 없구만.. 전형적인 코드워리어...  봐서 뭐하려고?.. 말쌈 하자는거야?? ㅎㅎㅎ 됐다.. 에휴..

내가 니만큼 하겠니... 니 댓글들봐.. 넌 그따위 똥싸바리를 첨보는 사람 면상에 할수 있어서 그렇게 싸지르니는거여??? 할수 있으면 완전 싸이코패스네..  툭하면 면상면상 여기저기 싸지르는데 길가다 생판 첨보는 사람한테 그렇게 싸질러봐..ㅎㅎ

//----------------------------------------
Lyn [tohnokanna]   2013-07-01 01:00 X
흠... 통합할 가치가 있나 =_=a VS 자체로도 충분한듯...

근데 얼마나 X신짓을 해야 닷넷보다 느린 Native 코드를 만들수 있는지는 고민이 좀 되는군요 웹이야 뭐 상관없겠지만
//----------------------------------------

이거 외에도 찾아다 긁어 줄까???
자긴 싸질러도 되고 남이  싸질러주니까 심사가 뒤틀리나??? 난 되고 남은 안되고? 내가 하면 로멘스 남이하면 불륜? 일베충 비슷하네.. ㅎㅎ
유체이탈 화법이여??

참고로 화요머시기란 아이디와 프로젝트란 아디와는 난 다른 사람이란다.
개발자임 [abcde12345]   2013-07-05 10:39 X
암튼 다른 분들께는 험한 글 보여드려서 죄송합니다. 그만 쓰겠습니다.
피가로 [iamarock]   2013-07-05 12:00 X
2000년 즈음 이었을겁니다.
프세와 마소지에 자바 애플릿이 고개를 내밀고 NT와 리눅스가 각축을 벌이고 있었을때지요.
언어쪽으로는 국내에 아직 패키지솔루션 시장이 살아 있었으니 VB와 델파이의 전성기라고 해도 될 만한 시기였습니다.

그로부터 십여년이 지난 지금?

대부분의(우리나라) 저가 서버 시장은 Windows 가 차지하고 있습니다. 관리측면에서 유리한 Windows 가 리눅스를 몰아 냈습니다.
리눅스는 대신 가격 경쟁에서 유리한 플랫폼인 임베디드 시장을 접수하고 있습니다.
이것도 모르지요, XP가 슬슬 고개를 들이 밀고 있으니, NT의 선례대로 리눅스가 그쪽에서도 밀려나지 말란 법이 없지요.

지금은 윗 분들 말마따나 S/W의 떨어지는 성능을 H/W 가 커버해주는 시대이기도 합니다.
예전에 하드웨어에 비해 인건비가 저렴할때에는 반대의 상황이 연출됐드랬죠.
DB계의 공룡인 Oracle 의 튜너들이 각광 받던 이유이기도 합니다.

세상은 바뀌고 업무 플그램 언어 세상에서 C 를 밀어낸 클리퍼가 VB나 델파이에게 그 자리를 내주고,
다시 델파이등은 웹플랫폼에 기반한 스크립트에게 밀려나고, 기사회생한 VB 등은 .Net 으로 다른 시장을 만들고 있습니다.
이 와중에 델파이 개발의 주축인 개발자는 힘빠진 회사를 떠나 새로운 플랫폼을 만들고 자신의 왕국을 만들고 있죠.

세상사 正反合 입니다.

흔한 이야기이지만, 중요한 것은 사람이죠,


모쪼록, 건전한 正 과 反 으로 合 이 되길 바랍니다.
정성훈.해미 [sage5nor]   2013-07-08 09:22 X
▶◀

전자기기가 사람을 급하게 만드는 건 사실이지만
머가 당신을 그리 잡아죽일 것 같은 흥분으로 이끄는지요.

순간 그랬어도 조금만 다시 생각하면
먼저 손을 내밀면 다 이해할 것을

기본적인 배려, 존중을 잃어버린 지금이
안탑갑기만 합니다


+ -

관련 글 리스트
24021 말로만 설왕설래 하지 말고,,, 닷넷 vs Native 코드 베틀 제안합니다 코드웍 7846 2013/07/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.