nodejs에서 V8 엔진은 JavaScript 실행을 위한 인터프리터이며 V8은 "C++"를 사용하여 개발되었으며 Google Chrome에서 사용됩니다. V8은 JavaScript를 실행하기 전에 이를 네이티브 기계 코드로 컴파일하고 인라인 캐싱과 같은 방법을 사용하여 성능을 향상시킵니다.
이 튜토리얼의 운영 환경: windows7 시스템, nodejs 버전 12.19.0, DELL G3 컴퓨터.
NodeJS 개요
Baidu Encyclopedia에 따르면 Node.js는 고성능 네트워크 서버를 작성하기 위한 JavaScript 툴킷입니다. Node.js는 네트워크 서비스와 애플리케이션을 빠르게 구축할 수 있는 플랫폼입니다. 이 플랫폼은 Chrome의 JavaScript 런타임을 기반으로 합니다. 이는 실제로 Google Chrome 브라우저에서 사용되는 Google V8 엔진을 캡슐화한다는 의미입니다. V8 엔진은 Javascript를 매우 빠르게 실행하고 성능도 매우 좋습니다.
NodeJS는 간단한 캡슐화와 API 호출을 제공하지 않습니다. 그렇다면 지금만큼 인기가 없었을 것입니다. Node는 일부 특별한 사용 사례를 최적화하고 브라우저가 아닌 환경에서 V8을 더 잘 실행할 수 있도록 대체 API를 제공했습니다. 예를 들어, 서버 환경에서는 바이너리 데이터 처리가 꼭 필요한 경우가 많지만, Javascript에서는 이를 충분히 지원하지 않기 때문에 V8.Node에서는 바이너리 데이터를 편리하고 효율적으로 처리하기 위해 Buffer 클래스를 추가합니다. 따라서 Node는 단순히 V8을 사용하는 것뿐만 아니라 이를 최적화하여 다양한 환경에서 더욱 강력하게 만들어줍니다.
JIT 컴파일 JIT 개요
V8은 JIT(Just-In-Time 컴파일) 기술을 사용하여 JavaScript 코드를 로컬 플랫폼의 기계어 코드로 직접 컴파일합니다. 거시적인 관점에서 보면 그 단계는 자바스크립트 소스 코드 -> 추상 구문 트리 -> 로컬 기계 코드이며, 후자의 단계는 이전 단계에만 의존합니다. 예를 들어 Java 언어는 먼저 소스 코드를 바이트코드로 컴파일한 다음 이를 JVM용으로 해석하고 실행해야 합니다. JVM은 작업 중에 바이트코드의 일부를 선택적으로 로컬 머신 코드로 컴파일합니다. 최적화 전략. V8은 중간 코드를 생성하지 않습니다. 한 단계로 기계어 코드로 컴파일되고 CPU가 실행을 시작합니다. 해석 및 실행을 위한 중간 코드를 생성하는 방법과 비교할 때 V8의 전략은 한 단계를 절약하고 프로그램이 더 일찍 실행되기 시작합니다. 그리고 컴파일된 기계 명령어를 실행하는 것이 중간 코드를 해석하고 실행하는 것보다 빠릅니다. 단점은 바이트코드의 중간 표현이 부족하여 코드 최적화가 더 어렵다는 것입니다.
V8 개요
V8은 원래 Google Chrome 브라우저에 사용되었던 JavaScript 엔진입니다. Chrome의 첫 번째 버전과 함께 출시되었으며 오픈 소스였습니다. 이제 Chrome 브라우저 외에도 다른 많은 사용자가 있습니다. NodeJS, MongoDB, CouchDB 등과 같은
V8은 C++로 개발되었으며 Google Chrome에서 사용됩니다. JavaScript를 실행하기 전에 다른 JavaScript 엔진이 이를 바이트코드로 변환하거나 실행을 위해 해석하는 대신 V8은 이를 네이티브 머신 코드(IA-32, x86-64, ARM 또는 MIPS CPU)로 컴파일하고 인라인 캐싱과 같은 다음 방법을 사용합니다. 성능을 향상시키는 데 사용할 수 있습니다. 이러한 기능을 통해 JavaScript 프로그램은 V8 엔진에서 바이너리 프로그램만큼 빠르게 실행됩니다.
V8은 Windows XP 및 Vista, Mac OS에서 실행되는 ECMA-262, 버전 3에 지정된 대로 ECMAScript를 구현합니다. 모든 C++ 응용 프로그램에 포함될 수 있습니다. 프로젝트는 BSD 프로토콜을 기반으로 하는 Google 코드[1]에서 호스팅됩니다. 조직이나 개인은 자신의 프로젝트에서 소스 코드를 사용할 수 있습니다.
노드 관련 지식을 더 보려면
nodejs를 방문하세요.위 내용은 nodejs의 v8 엔진은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!