Optimization 将代码保存在一级缓存中

Optimization 将代码保存在一级缓存中,optimization,assembly,caching,cpu,k,Optimization,Assembly,Caching,Cpu,K,我一直在阅读,以下是我所看到的: 解释器的小尺寸和语言的紧凑语法使K应用程序能够完全适应处理器的1级缓存 我很好奇。如何将整个程序放在一级缓存中?比如说,CPU有256kb的一级缓存。假设我的程序比这个小很多,它需要很少的内存(比如,只需要调用堆栈之类的)。比如说,它不需要任何库(尽管如果一个程序是用于操作系统的,它需要包含kernel32.dll或其他任何东西)。操作系统不会自动为任何程序分配一些最小的内存吗(对于可执行代码、堆栈和堆) 谢谢。我相信他们所说的优点是,主执行代码将适合一级缓存;

我一直在阅读,以下是我所看到的:

解释器的小尺寸和语言的紧凑语法使K应用程序能够完全适应处理器的1级缓存

我很好奇。如何将整个程序放在一级缓存中?比如说,CPU有256kb的一级缓存。假设我的程序比这个小很多,它需要很少的内存(比如,只需要调用堆栈之类的)。比如说,它不需要任何库(尽管如果一个程序是用于操作系统的,它需要包含kernel32.dll或其他任何东西)。操作系统不会自动为任何程序分配一些最小的内存吗(对于可执行代码、堆栈和堆)


谢谢。

我相信他们所说的优点是,主执行代码将适合一级缓存;不管分配给程序的内存是多少。一旦加载了K应用程序,如果它从未接触过该内存,那么它在性能方面的分配就无关紧要了(即完全在一级缓存中的性能优势)

我认为他们说的不是整个程序都适合一级缓存,而是大部分时间运行的所有代码都适合一级缓存

是的,操作系统分配了很多其他的结构,但是这些结构很少受到影响,以至于无关紧要


当然,这都是猜测——我对“K”语言一无所知。

你把所有的程序代码都和最常执行的代码混淆了

对于解释语言来说,解释器核心无疑是执行频率最高的代码之一。在缓存中使用最频繁执行的代码可以加快执行速度,就像在缓存中使用最频繁访问的数据一样


关键部分是“最常见的”-没有必要缓存所有代码/数据以查看显著的加速。

解释器作为操作系统管理的正常程序运行。解释程序在解释器的内存空间内运行,在数据段中。许多K程序可能很容易完全适合一级缓存,即使整个解释器可能不适合。不过,主解释器循环可能适合