什麼是「堆棧顛簸」?或者「堆棧捶打」? (因爲我不知道定義,我不確定它是否是一個可數或不可數的術語。)什麼是「堆棧顛簸」?
回答
棧抖動就像堆棧抖動,但在棧上。
那裏,現在解釋。
哦,你想要更多的細節吧?
如果您在處理器上模擬基於堆棧的處理器,而不是您打亂堆棧。
如果你的C代碼malloc的和免費的其他所有代碼行,你就是在堆積如山。
堆棧顛簸是一個問題,如果您對代碼進行概要分析,那麼CPU幾乎花費了所有時間。
對於堆抖動,這是malloc()&免費()是你的#1 &#2最常用的功能。
現在有些CPU(rockwell make some)實際上被優化爲在硬件中運行基於堆棧的語言。
該緩存CPU內堆頂的N kilobtyes- 內部RAM
- 所有指令堆棧相對
奇怪的是,Java虛擬機是一個基於堆棧的模型。
在x86硬件上運行一個非常愚蠢的FORTH實現會顛覆堆棧。 您可能在閱讀Forth規範後編寫的那種東西,因此您會發出x86機器代碼以獲取第四條指令,並且不對其進行優化。第四,我對此表示歉意,我知道你的暗示會好得多。
Postscript也是基於堆棧的,這使得早期的postscript打印機激動人心:它們的ram和CPU速度有限:並且運行了一個堆棧顛簸語言。我相信很多努力都投入到像Apple Laserwriter這樣的東西上,以使它運行得更好。它有一個摩托羅拉68000 CPU運行在(10ish)兆赫和1Mb ram IIRC。
再次,堆垛機。
這有幫助嗎?
如果我再次找到原始參考,我會嘗試一下這個定義,看看它是否合適。但它肯定是有道理的,接受我寫了「thrash」並且按照原樣處理了問題和關鍵詞,並且與該詞的英語定義一致。蒂姆,非常感謝。 – talkaboutquality 2010-02-16 20:33:26
我已經看到這個術語在Forth的上下文中使用,其中缺乏堆棧幀訪問有時需要過度使用堆棧操作(「顛簸堆棧」)以將特定單詞放到堆棧頂部。
此外,This glossary定義爲「頻繁堆棧擴展(溢出)和收縮(下溢)」。顯然需要進一步解釋的定義。也許更熟悉Cray X1的人可以解釋一下。
我在堆棧衛士的背景下聽說過「stack thrashing」這個術語,但我認爲它通常被稱爲「堆棧砸碎」。堆棧粉碎意味着任何類型的利用堆棧漏洞(如buffer overflows)。這就是爲什麼GCC堆棧保護被稱爲SSP(Stack-Smashing Protector)。
「thrash」<>「smash」 – talkaboutquality 2010-02-16 20:30:17
我聽說「搗毀堆棧」(沒有第一個h),意思是「破壞堆棧」,例如,當一個函數從堆棧中獲取/放入更多的字節比它應該更多的時候,弄亂堆棧指針並且使其他函數無法正常工作。
當你用錯誤的調用約定調用一個外部函數時(例如,當一個dll中的函數是stdcall,但你聲明它爲cdecl),或者當你調用像printf或scanf這樣的可變參數函數時,會發生錯誤格式化字符串,所以它會彈出更多/更少的字節。
「thrash」<>「trash」 – talkaboutquality 2010-02-16 20:30:37
我知道了,但是因爲我從未聽說過我認爲他可能誤解了它。 – 2010-02-16 21:47:27
我相信這個詞完全是口語化的,並沒有確切的意思。你有沒有特定的引用或鏈接到你曾經見過的地方?
沒有任何確切的技術定義,我建議它意味着該術語的用戶認爲它意味着什麼。它可以應用於任何類型的濫用或堆棧的低效使用,但由於堆棧操作中通常發生的一切都是堆棧指針被移動,所以很難定義什麼會導致「垃圾」只是普通和理想的行爲。
在一個多線程應用程序中,每個線程都有自己的堆棧,上下文切換也意味着堆棧的快速切換,但該事件完全由術語「任務抖動」來描述。
- 1. 數據庫問題 - 顛簸 - 什麼是?
- 2. 全堆棧,堆棧交換等,什麼是堆棧?
- 3. 顛簸 - elasticsearch響應
- 4. 什麼是堆棧跟蹤?
- 5. 什麼是InfiniBand堆棧?
- 6. 什麼是硬件堆棧?
- 7. 什麼是堆棧跟蹤
- 8. 什麼是LAMP堆棧?
- 9. 什麼是jQuery堆棧?
- 10. 什麼是Linux堆棧?
- 11. 什麼「堆棧無效,堆棧只支持堆棧1和堆棧5」是什麼意思?
- 12. 顛簸 - 反覆過程
- 13. 顛簸底部元素
- 14. 顛簸組合在一起
- 15. 顛簸和皺球在Matlab
- 16. (Symfony 2.4)請求堆棧什麼是請求堆棧
- 17. 奇怪的顛簸行爲,這裏發生了什麼?
- 18. &(0,1)在顛簸變換中意味着什麼?
- 19. 什麼是「虛擬執行堆棧」?
- 20. 什麼是「圖形軟件堆棧」?
- 21. 什麼是最好的Java SIP堆棧?
- 22. 對齊堆棧是什麼意思?
- 23. 什麼是基於堆棧的類?
- 24. 複製堆棧是什麼意思?
- 25. 什麼是「雙堆棧故障」?
- 26. 什麼是基於堆棧的引用?
- 27. 什麼是'堆棧',因爲它與.Net
- 28. 什麼是函數堆棧滿算法?
- 29. 什麼是堆棧的默認模板?
- 30. 什麼是堆棧不平衡?
這不是我聽過的短語 - 上下文是什麼?我聽說有人說他們已經「拋棄了堆棧」,這意味着他們訪問了一個糟糕的指針並且覆蓋了一些堆棧,導致程序以奇怪而令人興奮的方式崩潰(並且很難調試)。 – 2010-02-13 18:26:07
我通常聽說過叫「粉碎堆」。 – 2010-02-13 18:28:14
垃圾或鞭打.. 海事組織它可能是像堆棧粉碎。肯定 – sud03r 2010-02-13 18:29:11