3

나는 "진짜"프로그래밍 배경에서 나온 ActionScript 3/Flash 9로 작업하기 시작했으며, 정확히 어떤 종류의 기계 코드에 대해 궁금해하게되었습니다. 하루의 끝. 컴파일러가 최적화 플래그 (예 : 루프 언 롤링, const 값 확인 등)와 함께 SWF를 컴파일 할 때 컴파일러가 어떤 종류의 최적화를 수행하는지뿐만 아니라 인터프리터가 생성하는 컴퓨터 코드의 종류도 알고 싶습니다. 행렬은 가능한 프로세서에서 SSE 명령을 곱하여 사용하고, FPU 모드는 사용하며, 데이터 구조는 자동으로 정렬됩니다.플래시 컴파일러/인터프리터 최적화

아무에게도 문서에 대한 링크가 있습니까? Google은 제 3 자 제품으로 계속 나를 보내고 있습니다.

+0

나는 답을 모른다. 그러나 나는 최악의 상황을 예상 할 것이다. –

+0

어도비는 액션 스크립트를 간신히 문서화하기 때문에, 알 수없는 것을 찾을 수 있을지는 의심 스럽다. –

답변

1

AS3 이후, there is new virtual machine which uses JIT.

또한 저는 라이센스 전문가가 아니지만, 정확하게 기억하면 Flex SDK compiler도 오픈 소스입니다.

+0

아아, 컴파일러의 소스를 읽는 것만으로 IL 분해를 분석 할 수없는 유일한 옵션 일 것입니다. –

-2

내가 잘못 될 수 있지만 나는 액션 스크립트가 있다는 인상이었다 컴파일되지 않고, PHP처럼 오히려 해석됩니다. 유일한 차이점은 Actionscript가 다른 자산과 함께 .swf로 캡슐화된다는 것입니다. 몇 가지 디 컴파일러를 가지고 놀면서 코드를 일종의 바이트 코드로 볼 수있는 것을 보았습니다.하지만 그 코드를 기계 코드와 비교하지는 않습니다. 성능이 향상되면 Alchemy을 살펴 보시기 바랍니다. 필자는 그와 함께 작업 해 본 적이 없지만,이 실험용 어도비 제품은 성능 손실을 최소화하면서 C/C++ 코드를 Flash Player로 이식 할 수 있도록 지원됩니다.

+1

틀렸어. ActionScript는 플래시 바이트 코드 ("중간 언어")로 컴파일됩니다. 이것이 바로 SWF입니다. Flash Player는 SWF 용 Flash 바이트 코드 인터프리터입니다. SWF에는 ActionScript 소스가 들어 있지 않으므로 flasm과 같은 도구가 유용합니다. 연금술에 대한 해석 +1은 –

+0

입니다. 행운의 탈출! – spender

2

최근에 플래시 컴파일러를 확인했습니다. 놀랍다! 여기 간단한 클래스 코드 : 여기

var A : Number = 0.0; 
    A = A*2*4; 

그리고 분해 코드 :

5  pushdouble  0 
7  convert_d 
8  setlocal1 
9  getlocal1 
10  pushbyte  2 
12  multiply 
13  pushbyte  4 
15  multiply 
16  convert_d 
17  setlocal1 

와우! 21 세기에 우리는 1980 년 수준의 컴파일러를 가지고 있습니다.

+0

안녕하세요 datacompboy, 어떻게하면 더 빨리 수행 할 수있는 대략적인 P 코드 표현을 게시 할 수 있습니까? - http://stackoverflow.com/questions/11072580/specifically-what-does-a-compiler-do-to-aggressively-optimize-generated-bytecode/11072727#11072727에서 내 질문에 대한 답변으로 정보를 추가하는 것을 고려하십시오. –

+1

바로 거기에 올바른 최적화가 * 2 * 4를 단일 * 8로 바꿉니다. – datacompboy