언어와 performance 는 전혀 상관없는 얘기.
performance는 언어와 관련된 compiler 혹은 interpreter 와 상관 있음.
초기의 c언어 컴파일러들은 느려서 게임등에는 써먹지 못할정도라고 했었지만, 이제는 성능이 필요한 곳에서 c언어는 좋은 선택중 하나임.
특히 고급언어가 느리다는 인식도 잘못된 인식중 하나로, 누구도 sql ,html이 느리다고 말하지 않음. 특정 dbms , 특정 웹브라우저의 성능에
대해서 말할 뿐임
보통 저급 언어가 기계어 가까워 성능상의 이득이 있다고 말하는데, 이론적으로 하이레벨 언어일수록 최적화 기회가 많아, 성능이 더 나을 확률이
높음. 하지만 아직까지는 기술적인 한계와 폰노이만 머신에 기초한 하드웨어로 인해 c 컴파일러가 생성해낸 코드가 더 빠름.
언어에 플랫폼이 포함된게 많아서 무슨 언어는 느리고 빠르고 말은 되는 거 같은데, 물론 퍼포먼스가 좋다고, 좋은 언어는 아님
여기서 하이레벨언어는 java , c#을 말하는게 아님, 자바와 c#은 개선된 c++을 간소화한 것일뿐 하이레벨은 아님.
언어에 플랫폼이 포함되었다는 게 무슨 말? 예를 들어보자 ~
인터프리터 같은거.. 인기있는 언어 말고는 거의 정해져있잖아.
띄어쓰기 콤마 개판인거 보니 이 님도 문과성향이 다분하구만.
이 이야기의 맹점은 뭐냐하면, compiler 와 interpreter 의 성능은 뭘로 끌어올리냐는거지.
결국 lowlevel 임. ㅋㄷ
하드웨어는 끊임없이 개선되는데,
누군가가 끊임없이 새 VM 과 컴파일러, 인터프리터를 만들어주길 기다리는거고
최적화 안된대로 굴러오면 그대로 쓰는수밖에 없지.
맹점이 아니지. 글에서 밝혔듯이 현실적으로는 아직까지 추상화가 부족화고, 고급언어가 더 빠른 성능을 내지 못하지. 그래서 ffi 로 c코드를 호출하는거고.
자 그럼 폰노이만 기계가 아닌, 하이레벨 랭귀지의 퍼포먼스를 뿜어내줄 수있는 (로우레벨보다) 기계의 개괄을 이야기해 보시죠?
lisp machine , parallel haskell
정말 그게 로우레벨과 비슷한 수준의 속도가 나올거라고 생각함?
상식 이하의 발상인데.
지금 당장도 터널링 효과 같은것 때문에 단순히 클럭을 쉽게 올리지 못하고 있는 상황임.
문제를 크게 encapsulation 할 수록, 디테일에 대해선 묵고할 수 밖에 없고 그게 하드웨어의 한계가 됨. 당연히 다이싸이즈가 커지면 고비용, 느려짐.
가령, 로우레벨 언어 (instruction) 정도를 커버하는 다이싸이즈가 9제곱 밀리미터면, 그것의 몇 십배가 되는 면적은 필요해짐.
그게 한 클럭에 고급언어 한 명령을 처리한다고 해서 작은 코어보다 빠르리라 생각함? 동일 해상도에서?
그래서 concurrent / parallel 로 목숨걸잖아. 이제 그시대에는 c/c++ , java/c#의 자리는 없겠지. 그런데 아직 먼얘기지. 아, 혹시 코세는 c/c++ 류 밖에 쓸줄모르는 거?
multi - core
맹점이 있다는거지 바부.
코어수를 늘려서 커버한다 결국 경제성이지.
똑같은 기능을 하는데 누군 40불에 만들어, 누군 400불에 만들어 무엇이 살아남겠음?
음, 내가 볼때 코세는 하이레벨은 완전 문외한 이네. 걔네들이 최적화를 어떻게 하는지 봐봐. 더 이상 얘기 해봤자 손아푸다.
고급언어는 시장경쟁속에서 결국 네이티브 최적화의 프로토타입밖에 안됨.
더이상 이야기할만한 지식이 없겠지 : )
기껏 꺼낸게 리습머쉰, 병렬 헤스캘이니.
하스켈이든 뭐든 암튼.
고급언어를 지원하는 하드웨어란 컨셉 자체가 굉장히 많은 모순을 갖고 있음.
고급언어는 하드웨어 위에 존재할때 고급언어로서 의미가 있는것임. 가속으로 좀 빠르게 한다? 네이티브는 더빨라짐.
하드웨어에서 지원한다? 고급언어의 발전이 굳어버림. 즉,
가뜩이나 hardwired 란 단어가 있을 정도로 최적화하기 좆같은 하드웨어 설계가 더피곤해질 뿐임.
당연히 최적화는 로우레벨단에서 하지. 문제는 표현의 문제. 그 최적화 표현을 c/c++ 류의 언어로 힘들게 할것이냐, 추상화시켜서 (예로, 컴파일) 최적화할것이나. 이제는 점점 후자로 간다는 얘기야.
핏팅정도는 시스템이 최적화해주겠지. 하지만 고급언어의 탄력을 하드웨어에 넣는다는 자체가 무개념. 향후 좀 빨라진다. 네이티브만 요구되던 시장에 들어온다 정도는 이해. 그건 과거의 네이티브 시장이란거지.
아, 졸 무식한 새퀴. ..진짜...
그건 니 착각.
고급언어를 이용한 현재의 고사양게임 정도는 커버할 날이 오겠지.
야 . dsl이 뭐냐 ?
그럼 네이티브는 또 다른 경지에 가 있게 된다니깐 무식한 새끼야.
DSL? HDL 이야기 하는거 아님?
아, 무식한 새퀴. 진짜 기초도 안되어 있네.
Domain Specific Language , html , sql 같은걸 말하는거야
Domain specific language 가 뭐?
추상화란 보통 dsl을 말하는거구.
씨발 약자가 한두개야?
랭퀴지 , 추상화레벨에 대해 얘기하는데, DSL이 뭔지도 모르면 말 다했지.
니 말로 당연히 최적화는 로우레벨단에서 하지. 라면 이미 끝난 이야기지.
DSL 이 존나 의미있는 약자 처럼 들리나보지?
넌 추상레벨을 이야기 했다지만 난 로직블럭을 생각하고 있으니 그런거지 등신아.
니가 처음 꺼낸 이야기가, 언어에 따른 속도이야기는 어불성설이다. 였는데
뭐? 멀티코어? 장난하나?
여자 못생김
개취존.
너님 실력 쓸만한 거는 아는데 모르는 분야까지 다 안다고 바득바득 이기려고 하지마, 이겨서 뭐하냐. 걍 너님이 모르는 세계도 있다는거야. 관심있으면 찾아봐.
니가 하드웨어나 시장을 전혀 모르고 문돌이식 상상력을 발휘하니 비웃어주는거지 ㅋㄷ
모르는 분야고 아니고가 문제가 아니고 등신아. 니가 폰노이만 들먹일때 이미 비웃고 있었음. 어딜 어떻게 적용해야 수정해야 될지도 모르는게 폰노이만을 왜들고나와?
마실 좀 다녀옴~
내용 요지는 이해 해서, 결국 어떤 언어든 컴파일러와 인터프리터를 개선하면 c언로 짜든 c++로 짜든 같은 성능을 낼수 있다. 그러니 언어가 느리고 빠르다 라는건 이야기할 필요가 없다 인가요? 자바같은 경우에 jvm에서 돌아가는데 느릴수 밖에 없지 않나요? 무겁다 라고 표현해야 하나요?
아주~ 무식하군요. jvm 때문에 성능이 떨어지는걸 그럼 언어 자체가 떨어진다고 볼 수도 있는거지.
그럼에도 특정 언어들이 특정 분야에 특화를 보여주니 사용하는 거고. 성능 차이는 당연히 있는거지.
이 글쓴 앤 그런걸 모르고 쓴 글은 아닌데, 지극히 낭만주의임.
멀티코어란 대답이 나오는데서 이미 네이티브보다 느리다는건 깔고 가는거고.
코어 설계 한번 안해본 대가리로 문돌식 낭만주의에 빠지면 저런 생각 할 수도 있지뭐.
오~ 증명하여 논문쓰면 IEEE Award 예약.