스크립팅 언어를 컴파일된 언어로 바꾸는 것과 순수 컴파일된 언어로 바꾸는 것 중 어느 것이 더 빠릅니까?[닫은]

StackOverflow https://stackoverflow.com//questions/23044498

문제

최근에 저는 jruby로 애플리케이션을 코딩하고 그로부터 .jar 파일을 만들어 tomcat에 배포했습니다.나는 또한 "Jruby - Java의 확장성과 Ruby의 용이성"이라는 jruby에 대한 기사를 읽었습니다.

여기서 jruby에서 이와 같은 코딩이 Java에서 직접 코딩하는 것과 동일한 확장성과 성능을 제공하는지 알고 싶습니다.

이와 같이 Ruby 확장을 사용하여 Ruby에서 C 코드를 실행하면 C에서 직접 코딩하는 것과 동일한 성능을 얻을 수 있습니다.

감사해요

도움이 되었습니까?

해결책

(부인 성명:완전한 답변은 아닐 수도 있지만 코멘트를 달기에는 너무 길었습니다)

특히 JRuby 구현에 대한 경험이 거의 없지만 JVM에 구현된 동적 언어는 Java에서 직접 코딩할 때 얻을 수 있는 속도에 비해 속도 측면에서 제한이 있습니다.

내가 이해한 바에 따르면 이는 클라이언트 언어 구현의 절충안에서 비롯됩니다(JRuby, 클로저, 자이썬, 등)은 호스트 플랫폼에서 내부 작업을 "시뮬레이트"하기 위해 만들어야 합니다(이 경우 JVM).아마도 가장 일반적인 시나리오에서는 JVM의 HotSpot 최적화가 시작되므로 성능 차이가 그다지 나쁘지 않을 수도 있지만 Java와 유사한 코드 성능을 얻으려면 우회하기 위해 언어 구현의 세부 사항을 자세히 살펴봐야 할 수도 있습니다. 몇 가지 제한 사항이 있습니다.

의 경우 루비 확장 프로그램 , 실제로 실행하고 있는 것은 원래 다음 언어로 코딩된 네이티브 코드(기계어)입니다. , 이지만 Ruby 코드에서 호출할 수 있습니다.달릴 때 JRuby 코드, 프로그래밍 중인 언어는 다음과 같습니다. 루비, 이는 다음과 같이 컴파일되어야 합니다. 자바 에서 실행되는 바이트코드 JVM, 이를 기본 운영 체제의 작업으로 변환합니다.뭔가 아날로그적이다 루비/C 이 경우에 있을 것이다 JRuby/자바, 그러면 전화가 올 것 같아요 자바 원래 작성된 코드 자바 당신의 JRuby 프로그램.

편집하다

이것 논의 위에 포함된 몇 가지 사항과 다른 흥미로운 사항에 대한 자세한 설명이 언급되어 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top