문제

유형 검사를 우회하기 위해 매개 변수의 유형을 어떻게 선언합니까?

컴파일러에 가능한 한 빨리 함수를 실행하도록 (최적화 속도 (안전 0))를 알려주는 속도를 최적화하려면 어떻게해야합니까?

체계에서 인라인 함수를 어떻게 만드나요?

데이터 객체의 미지방 표현을 어떻게 사용합니까?

그리고 마지막 으로이 중요하거나 필요합니까? 이러한 최적화를하기 위해 컴파일러에 의존 할 수 있습니까?

감사합니다, Kunjaan.

도움이 되었습니까?

해결책

  1. 휴대용 방식으로는이 중 어느 것도 할 수 없습니다.
  2. 매크로를 사용하여 "일종의"인라인을 얻을 수 있지만 거의 항상 그렇게하려고합니다. 체계 (또는 다른 언어) 컴파일러를 작성하는 사람들은 일반적으로 기능을 인라인하는 것이 가장 좋은시기를 결정하는 데있어보다 훨씬 좋습니다.
  3. 당신은 값을 무효로 만들 수 없습니다. 일부 체계 컴파일러는 최적화로이를 수행하지만 볼 수있는 방식으로는 그렇지 않습니다. ~이다 최적화 - 의미를 보존해야합니다).
  4. 마지막 질문은 대답이 매우 주관적입니다. 어떤 사람들은 일부 기능이 사용하는 CPU 사이클 수를 정확히 알지 못하고 밤에 잠을 잘 수 없습니다. 어떤 사람들은 신경 쓰지 않고 컴파일러를 신뢰하여 합리적으로 좋은 것을 최적화하는 데 괜찮습니다. 적어도 당신은 언어의 학생이 많고 구현자가 덜한 단계에서 후자 그룹을 고수하는 것이 좋습니다.

다른 팁

컴파일러를 돕고 싶다면 가능한 경우 최상위 정의를 줄이는 것을 고려하십시오. 컴파일러가 최상위 수준에서 함수를 보면 프로그램에서 해당 함수가 어떻게 사용되거나 수정 될 수 있는지 추측하기가 매우 어렵습니다. 함수가 기능 범위 내에서 기능을 사용하는 경우 컴파일러의 작업이 훨씬 간단 해집니다.

Chez Scheme 매뉴얼에는 이것에 대한 섹션이 있습니다.http://www.scheme.com/csug7/use.html#./use:h4

분명히 Chez는 가장 빠른 체계 구현 중 하나입니다. 좋은 최적화를하기 위해 이런 종류의 "지침"이 필요하다면, 다른 구현이 그것을 없이도 살 수 없다고 생각합니다 (또는 모두 함께 무시합니다).

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