2012-01-23 4 views
2

내 질문을 인라인은 매우 간단하다?GET/설정 기능과

그렇다면 의도 한 용도 이외의 용도로 사용하지 못하는 것이 있습니까? (내 코드가 읽기가 어려워지는 것을 제외하고)

+1

인라인은 의미 론적 측면에서 투명해야합니다. 그것은 질문의 두 번째 부분에 대답합니까? (물건을 인라인하려고 시도하는 데 사용하려고합니까?) – Cameron

+0

아는 한, 함수 인라이닝은 AS3에서 전혀 지원되지 않습니다. 누락 된 것이 있습니까? [HaXe] (http://haxe.org)는 (정말로 좋은) 인라이닝을 지원합니다. – Cameron

답변

2

저의 지식에 따르면, 플래시는 매우 드물게 인라인합니다. 나는 당신이 여전히 반영에 의해 접근 할 수 있기 때문에 getter와 setter에게 일어나는 일은 거의 없다는 것을 거의 긍정적으로 나타냅니다 (인라인 된 정의에서는 불가능할 것입니다). 성능을 향상시키기 위해 노력하지 않을 것입니다. 실제로 이러한 이득을 원한다면 Flash 런타임과 함께 실제 인라인 함수 정의를 수행 할 수 있으므로 haXe를 대신 사용하십시오. 희망이 도움이됩니다!

+0

필자가 아는 한, 플래시에는 JIT 컴파일러가 있으며 실제로 인라인 함수가 될 수 있습니다. (Java의 JIT와 비슷합니다.) – Acidic

1

확실하지는 않지만 대답은 '아니오'라고 생각합니다. 플래시의 많은 요소는 동적이며 플래시 컴파일러는 바이트 코드 최적화를하지 않는 것으로 유명합니다.

실제로 getters를 사용하면 setter는 함수 호출을 사용하는 것보다 느리고 함수 호출은 공용 변수에 직접 액세스하는 것보다 느립니다.

actionscript에서 함수를 인라인하려면 가장 좋은 방법은 끔찍합니다. dang 코드를 복사하십시오. 분명히 그것은 모든 버그가 해결 된 후 최적화의 마지막 단계입니다.

편집 : Adobe 컴파일 된 swfs에서 많은 개선 할 수있는 Joa ebert의 오픈 소스 바이트 코드 최적화 도구가 있습니다. https://github.com/joa/apparat 거기서 읽으십시오. Readme에서 도구를보기 위해 자신을 스크롤하십시오. 원하는 것은 TDSI - TurboDeiselSportInjection입니다. 그 이름은 어때?

+0

JIT 컴파일러는 어떻습니까? – Acidic