2017-03-19 1 views
0

v8_hello_world 샘플을 컴파일 했으므로 콘솔에 "hello world"를 인쇄 할 수 있습니다. 나는 V8이 JIT와 함께 자바 스크립트를 컴파일한다는 것을 알고 있지만 컴파일 된 지침과 같은 상세한 메시지를 인쇄하려고한다. 또한이 지침의 유형을 알고 싶습니다. 어떻게해야합니까? V8 엔진에서 컴파일 된 지침을 인쇄하는 방법은 무엇입니까?

당신이에 관심이 생성 된 코드의 유형에 따라 ~

답변

1

대단히 감사합니다, 당신은 V8에 대응하는 플래그 (들)을 통과해야합니다 :

  • (이하 "점화"인터프리터에 의해 생성됨)
  • --print-bytecode 인쇄 바이트 코드를 머신 코드를 최적화
  • --print-opt-code 인쇄물 (CREA ("전체 CODEGEN」라고 unoptimizing 컴파일러에 의해 생성 된) --print-code 인쇄 최적화되지 않은 머신 코드

이 플래그 (및 많은 다른 것들)는 --help에 의해 문서화되어 있습니다. 실행 파이프 라인에 대한 주요 변경 사항은 현재 사용중인 V8 버전에 따라 다른 컴파일러가 컴파일 한 동일한 기능을 볼 수 있습니다.

개발자 셸 d8을 사용하는 경우 이러한 플래그를 명령 줄에서 직접 전달할 수 있습니다. 자신의 퍼가기 어플리케이션에서 v8::V8::SetFlagsFromCommandLine을 사용하여 argcargv을 V8에 전달할 수 있습니다. d8.cc에서 일부 플래그를 직접 처리하고 다른 플래그를 V8으로 전달하는 방법에 대한 예제를 볼 수 있습니다.

+0

대단히 감사합니다 !! 그것은 나를 많이 돕는다! – Oceanisher

+0

@jmrk 조금 혼란스러워. 수소와 리튬은 무엇입니까? 나는 그들에 대해 읽었습니다. 기사 http://www.mattzeunert.com/2015/08/19/viewing-assembly-code-generated-by-v8.html –

+1

@DineshRavi : 이들은 높은 수준의 내부 이름이었습니다 컴파일러를 최적화하는 "Crankshaft"의 저급 중간 표현입니다. 그 후 "Turbofan"으로 대체되었습니다. – jmrk

관련 문제