保持你的代码中的L1高速缓存
-
22-07-2019 - |
题
我一直在阅读维基百科的日K编程语言的文章,这是我所看到的:
的解释器和语言的紧凑语法的小尺寸使得能够对于K应用到处理器的一级高速缓存内完全容纳。
我感兴趣。怎么可能有L1高速缓存整个程序?说,CPU拥有256KB L1缓存。说我的计划是比少的方式,它需要的内存非常少量的(比方说,只是调用栈和这样)。比方说,它不需要任何库(不过,如果一个程序是一个操作系统,它需要包括KERNEL32.DLL或其他)。并且不OS自动分配用于任何程序一些最小存储器(当然,可执行代码和堆栈和堆)?
感谢您。
解决方案
我觉得他们说的是不是整个程序中的L1高速缓存配合,但所有运行的大部分时间的代码适合在L1缓存。
是的,OS分配很多其他的结构,但这些都是很少打够没有关系。
当然,这都是猜测 - 我一无所知“K”的语言
其他提示
相信他们说话到的优点是,主要执行代码将适合在L1高速缓存;不管内存分配给程序。一旦K个应用程序被加载,如果不触碰内存则没有,如果它在性能方面的已分配(即完全的L1高速缓存作为PERF利益)关系。
您混淆所有程序代码与最频繁执行的代码。
有关的解释语言解释器核心肯定是最频繁执行的代码之间。具有最频繁执行的代码高速缓存中加快执行相同的方式,在高速缓存中具有最频繁访问的数据一样。
关键部分是“最常” - 这是没有必要把所有的代码/缓存的数据看显著加速
。在解释器运行作为由OS管理的正常程序。该解释的程序解释器的存储器空间中运行,在所述数据段。多个K程序可以轻松地放进L1缓存彻底,即使整个解释可能不会。主解释程序循环可能将适合虽然。
不隶属于 StackOverflow