堆栈颠簸就像堆颠簸,但在堆栈上。
那里,现在已经解释了。
哦,你想要更多细节吧?
如果您在不是处理器的处理器上模拟基于堆栈的处理器,那么您就是在颠簸堆栈。
如果你的 C 代码 malloc 和 free 每隔一行代码,你就是在颠簸堆。
堆栈颠簸的问题在于,如果您分析代码,CPU 几乎所有的时间都花在弹出和推送上。
对于堆抖动, malloc() 和 free() 是您最常用的 #1 和 #2 函数。
现在,一些 CPU(rockwell 制造了一些)实际上经过优化,可以在硬件中运行基于堆栈的语言。
奇怪的是,Java 虚拟机是一个基于堆栈的模型。
在 x86 硬件上运行一个非常愚蠢的 FORTH 实现会破坏堆栈。你在阅读 Forth 规范后可能会写的那种东西,所以你为第四条指令发出 x86 机器代码并且不要优化它。兄弟们,我很抱歉,我知道你的实现要好得多。
Postscript 也是基于堆栈的,这让早期的 postscript 打印机令人兴奋:它们的内存有限,CPU 速度慢:并且运行堆栈颠簸语言。我敢肯定,为了让它运行得更好,像最初的 Apple Laserwriter 这样的东西已经做了很多努力。它有一个摩托罗拉 68000 CPU,以(10 左右)兆赫兹和 1Mb 的 RAM IIRC 运行。
再次,堆栈 thrashers。
那有帮助吗?