문제

나는 읽고있다 K 프로그래밍 언어에 관한 Wikipedia의 기사 그리고 이것이 내가 본 것입니다.

통역사의 작은 크기와 언어의 소형 구문을 사용하면 K 응용 프로그램이 프로세서의 레벨 1 캐시 내에 완전히 맞을 수 있습니다.

나는 흥미 롭다. L1 캐시에 전체 프로그램을 어떻게 사용할 수 있습니까? CPU에는 256KB L1 캐시가 있습니다. 내 프로그램이 그보다 훨씬 적으며 메모리가 거의 필요하다고 가정 해 봅시다 (예 : 콜 스택 등의 경우). 라이브러리가 필요하지 않습니다 (프로그램이 OS 용이라면 Kernel32.dll 등을 포함해야합니다). 그리고 OS는 모든 프로그램에 대한 최소 메모리를 자동으로 할당하지 않습니까 (실행 가능한 코드 및 스택 및 힙의 경우)?

고맙습니다.

도움이 되었습니까?

해결책

그들이 말하는 것은 전체 프로그램이 L1 캐시에 맞는 것이 아니라 대부분의 시간에 실행되는 모든 코드가 L1 캐시에 적합하다는 것입니다.

그렇습니다. OS는 많은 다른 구조물을 할당하지만, 그 구조는 중요하지 않기에 거의 맞지 않습니다.

물론 이것은 모든 추측입니다. 나는 'K'언어에 대해 아무것도 모른다.

다른 팁

나는 그들이 메인 실행 코드가 L1 캐시에 적합하다는 이점을 말하고 있다고 생각합니다. 프로그램에 할당 된 메모리에 관계없이. k 응용 프로그램이로드되면 메모리에 닿지 않으면 성능 측면에서 할당되는지 여부는 중요하지 않습니다 (즉, L1 캐시에 완전히 이점이 있습니다).

모든 프로그램 코드를 가장 자주 실행되는 코드와 혼동합니다.

해석 된 언어의 경우 통역사 코어는 확실히 가장 자주 실행되는 코드 중 하나입니다. 캐시에서 가장 자주 실행되는 코드를 사용하면 캐시에서 가장 자주 액세스하는 데이터와 동일한 방식으로 실행 속도를 높입니다.

핵심 부분은 "가장 자주"입니다. 중대한 가속을보기 위해 모든 코드/데이터를 캐시 할 필요는 없습니다.

통역사는 OS가 관리하는 일반 프로그램으로 실행됩니다. 해석 된 프로그램은 데이터 세그먼트에서 통역사의 메모리 공간 내에서 실행됩니다. 전체 통역사가 그렇지 않더라도 많은 K 프로그램이 L1 캐시에 쉽게 맞을 수 있습니다. 메인 통역사 루프는 아마도 맞을 것입니다.

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