Nice programing

Javascript는 Java에 비해 얼마나 빠릅니까?

nicepro 2020. 10. 20. 08:10
반응형

Javascript는 Java에 비해 얼마나 빠릅니까?


Javascript의 성능을 Java의 성능과 비교하는 테스트가 있습니까?

업데이트 : 모두가 왜이 질문이 지옥인지 묻고 있기 때문에 여기에 몇 가지 컨텍스트가 있습니다. :)

아시다시피-저는 희망합니다-Javascript는 오늘날 웹 클라이언트뿐만 아니라 node.js가있는 웹 서버에도 있습니다.

또한 appcelerator 및 phonegap이있는 휴대폰 및 dekstop에서 실행할 수 있습니다.

또한 데스크톱 애플리케이션에서와 같이 사용자 경험을 일류 수준으로 만들기 위해 웹 브라우저에서 실질적으로 사용될 수 있습니다.

그러나 Java는 웹 클라이언트와 휴대폰에서 애플릿을 실행하여 이러한 작업을 수행 할 수도 있습니다. 또한 선택할 수있는 프레임 워크가 많은 백엔드 용 언어이기도합니다.

그들 각각은 언급 된 영역에서 거의 / 전체적으로 서로를 대체 할 수 있기 때문에 내가 설명한 모든 경우에 대해 이들 간의 성능 차이를 알고 싶습니다.

  • 클라이언트 : 자바 애플릿 대 자바 스크립트
  • 서버 : Java EE vs Javascript with Node.js + Express
  • 휴대폰 : Phonegap / Appcelerator가있는 Java ME vs Javascript
  • 데스크톱 : Phonegap / Appcelerator가있는 Java SE 대 Javascript

이제 문맥이 더 명확 해 졌으면합니다.


Java와 JavaScript는 모두 프로그래밍 언어입니다. 프로그래밍 언어는 추상적 인 수학적 규칙의 집합 일뿐입니다. 프로그래밍 언어는 빠르지 않습니다. 아니면 천천히. 그들은 단지 입니다 .

응용 프로그램의 성능은 언어와 관련이 없습니다. 가장 중요한 요소는 애플리케이션 아키텍처입니다. 그런 다음 알고리즘 효율성이 나타납니다. 그런 다음 마이크로 최적화. 그런 다음 컴파일러 / 인터프리터의 품질이 나옵니다. 그런 다음 CPU. 그 사이에 몇 가지 다른 단계가있을 수 있습니다. 그러나 언어는 직접적인 역할을하지 않습니다. (물론 벤치 마크에 대해 이야기하는 경우 특정 벤치 마크도 역할을합니다. 벤치 마크가 얼마나 잘 구현되었는지, 얼마나 잘 실행되는지, 벤치 마크를 수행하는 사람이 실제로 벤치마킹에 대해 알고 있는지 여부 , 더 중요한 것은 통계입니다. 또한 실제로 의미 하는 바 정확한 정의는"빠름"은 벤치 마크에 상당한 영향을 미칠 수 있으므로 매우 중요합니다.)

그러나 언어가 간접적으로 역할을 수행 할 수 있습니다. 100 줄의 100 줄보다 표현력이 높고 명확하며 간결하며 가독성이 높고 잘 팩터링 된 분리 된 고수준 Lisp 코드 10 줄에서 성능 병목 현상을 찾아 수정하는 것이 훨씬 쉽습니다. 얽힌 저수준 C. (이 두 언어는 단지 예일뿐입니다. 한 언어를 골라내는 것은 아닙니다.) 예를 들어 트위터는 Ruby보다 표현력이 낮은 언어를 사용하면 그렇지 않을 것이라고 말했습니다. 확장 성 문제를 해결하기 위해 짧은 시간 내에 아키텍처를 근본적으로 변경할 수있었습니다. 그리고 Node.js가 이렇게 좋은 이벤트 I / O 성능을 제공 할 수있는 이유는 JavaScript의 표준 라이브러리가 너무 형편 없기 때문입니다. (그러면 Node.js는 모든 I / O 자체를 제공해야하므로 처음부터 이벤트 I / O에 맞게 최적화 할 수 있습니다. Ruby 및 Python, 예를 들어 Node.js만큼 잘 작동하고 훨씬 더 성숙 된 이벤트 I / O 라이브러리가 있습니다.하지만 Ruby와 Python에는 이미 I / O 라이브러리를 포함한 대규모 표준 라이브러리가 있습니다. 이벤트가있는 라이브러리와 잘 어울리지 않습니다. JavaScript에는 I / O 라이브러리가 없기 때문에 JavaScript에는 이벤트 I / O와 잘 작동하지 않는 I / O 라이브러리 문제가 없습니다.전혀 .)

그러나 두 가지 정말로 비교하고 싶다면 흥미로운 데이터 포인트가 있습니다. HotSpot은 더 인기 있고 성능이 뛰어난 JVM 구현 중 하나이며 다른 사람들과 함께 다음을 포함한 팀에 의해 생성되었습니다. Lars Bak이라는 사람. 그러나 실제로 HotSpot은 허공에서 나오지 않았고, 다른 사람들과 함께 Lars Bak이라는 사람을 포함한 팀이 만든 Anamorphic Smalltalk VM의 소스 코드를 기반으로했습니다.

V8은 가장 인기 있고 성능이 뛰어난 JavaScript 구현 중 하나이며, 다른 사람들과 함께 Lars Bak이라는 사람을 포함한 팀에 의해 만들어졌습니다. 그러나 실제로 V8은 허공에서 나오지 않았고, 다른 사람들과 함께 Lars Bak이라는 사람을 포함한 팀이 만든 Anamorphic Smalltalk VM의 소스 코드를 기반으로했습니다.

둘이 어느 정도 동일하므로 유사한 성능을 기대할 수 있습니다. 유일한 차이점은 HotSpot에는 15 년 동안 100 명이 넘는 엔지니어가 작업하고있는 반면 V8에는 5 년 미만 동안 작업 한 엔지니어가 12 명이라는 것입니다. 이것이 성능 유일한 차이입니다. 정적 대 동적 유형이 아닙니다 (Java 정적으로 유형이 지정되지만 대부분의 JVM과 확실히 HotSpot은 정적 최적화를 전혀 수행하지 않으며 모든 최적화는 순전히 동적 임), 컴파일 대 해석 (HotSpot은 실제로 추가 JIT 컴파일러로 해석되는 반면 V8 순전히 컴파일 됨), 높은 수준 대 낮은 수준. 순전히 돈에 관한 것입니다.

그러나 Java 구현이 더 빠른 모든 Java 및 JavaScript 구현 쌍에 대해 JavaScript 구현이 더 빠른 다른 쌍을 찾을 수 있다고 확신합니다. 또한 나는 아마도 쌍을 유지 하고 다른 벤치 마크를 사용할 수 있습니다 . 컴퓨터 언어 벤치 마크 게임을 "게임"이라고 부르는 데에는 이유 가 있습니다 . 그들은 심지어 당신이 자신의 페이지에서 벤치 마크를 가지고 놀면서 임의의 언어를 정상으로 올리 도록 권장 합니다.


추가 할 일화 만 있습니다. 최근 Javascript (nodejs v0.6.8)에서 Java calc 서버 (금융)를 다시 구현했습니다. WRT 개발 시간, Javascript 구현은 훨씬 적은 코드 라인으로 원래 Java 구현에 비해 매우 간편했습니다. 정말 신선한 공기의 숨결이었습니다.

자바 스크립트 기반 서버는 초당 2.4k 거래를 통해 계산할 수있는 반면 자바 서버는 더 적은 메모리를 사용하여 동일한 하드웨어에서 400 + / 초를 처리합니다. 속도 증가는 원시 V8 대 Java 7 성능 때문이 아니라 구현 때문이라고 생각합니다. Javascript 구현은 훨씬 적은 데이터 구조를 사용하고, 훨씬 적은 수의 메서드 호출을 수행하며,보다 간단하고 간결한 접근 방식을 취합니다.

말할 필요도없이 node.js의 성능에 매우 만족합니다. 그리고 이것은 수 (9) 년 동안 만 자바였던 사람에게서 나왔습니다.


다음은 Javascript (V8)와 컴파일 된 Java를 비교하는 몇 가지 테스트입니다.

그들은 Java가 일반적으로 더 빠르다는 것을 나타냅니다 1 . 그러나 해당 페이지와 연결된 리소스를 살펴보면 like와 비교하기가 매우 어렵다는 것을 알 수 있습니다.

흥미롭게도 Javascript는 "regex-dna"벤치 마크에서 Java (특정 조건 하에서)보다 훨씬 낫습니다. 내 생각 엔 이것은 Javascript regex 엔진이 Java regex 엔진보다 빠르기 때문입니다. 일반적인 Javascript 응용 프로그램에서 정규식의 중요성을 감안할 때 이것은 완전히 놀라운 것은 아닙니다.

1-엄밀히 말해서 X 언어가 Y 언어보다 빠르다고 말할 수 없습니다 . 각 언어의 특정 구현 만 비교할 수 있습니다 . 그리고 내가 링크 한 사이트는 그것에 대해 명확합니다 ... 당신이 첫 페이지를 통해 들어가고 싶다면. 그러나 특정 데이터 포인트에서 일반화하는 것은 전적으로 불합리한 것은 아니며 ... 그리고 모순되는 데이터 포인트가 없다는 명백한 ... Java는 일반적으로 계산 집약적 인 작업에서 Javascript보다 빠릅니다. 그러나이면은 그러한 성능이 종종 객관적으로 중요한 기준이 아니라는 것입니다.


분명히 자바.

프로그래머는 일종의 오줌 싸이는 콘텐츠처럼 실행 속도를 비교하는 것을 좋아합니다. 그것은 단지 하나의 메트릭이며 대부분의 시간 동안 가장 중요한 것은 아닙니다. Java는 거의 모든 것에 대해 충분히 빠르지 만 GC와 같은 것을 얻을 수있을만큼 충분히 높은 수준이 혼합 된 언어입니다. 일반적으로 유사한 언어로는 얻을 수 없습니다. Javascript는 작업을 신속하게 수행하는 데 적합한 동적 클로저 언어입니다 (그리고 OO 세계에 갇힌 FP 프로그래머에게는 ;-)). 어느 쪽이든 적절한 공간에는 교차로가 많지 않습니다.

이제 그만 관상 할게

편집 : 게시물의 편집을 해결하기 위해

Due to the way one writes idiomatic javascript (functions composed of functions), it lends itself surprisingly well to asynchronous programming, probably better then any other language of similar popularity. Node.js shines when it comes to a huge amount of short connections, so javascript is a really great fit for that sort of thing.

While node.js is absolutely drenched in awesome, being the new hotness really doesn't mean it is the best at everything, no matter what the hype says. If a java app is replaceable by node, chances are java wasn't really appropriate in the first place.


Probably not, but it doesn't really matter.

Prior to Google Chrome's JavaScript JIT, Java would win over JavaScript as soon as the problem got big enough to overcome the load time.

Java should still roundly trounce JavaScript due to integer vs. float math. No matter how good the JIT it can't really make up for this.


http://benchmarksgame.alioth.debian.org/u64q/javascript.html

(Remember to look at the cpu column as-well-as elapsed secs).

According to the above link JavaScript as reality stands now is much slower for almost everything.


They are only similar in name, that's it. Java is compiled while JavaScript is interpreted (mostly). Even with V8's just in time compiler Java is faster at everything.

참고URL : https://stackoverflow.com/questions/3723374/how-fast-is-javascript-compared-to-java

반응형