關於堆和棧 一級快取和二級快取的理解

2021-10-06 19:51:05 字數 647 閱讀 6102

資料結構的堆和棧

堆:先進先出的

棧:先進後出的、自頂向下

記憶體分布上的堆和棧

:也稱為動態記憶體分配,是由我們自己在程式中分配記憶體和釋放的,就是生存期是由我們自己決定的如malloc函式(注意避免記憶體洩漏)

區域性變數的記憶體,函式結束後記憶體自動被釋放,棧記憶體分配運算內置於處理器的指令集中,它的執行效率一般很高,但是分配的記憶體容量有限。

靜態儲存區:全域性變數、static變數;它是由編譯器自動分配和釋放的,即內存在程式編譯的時候就已經分配好,這塊內存在程式的整個執行期間都存在,直到整個程式執行結束時才被釋放。

動態儲存區:堆和棧

一級快取和二級快取

為什麼需要快取

cpu執行速率很快,記憶體的就很慢,所以就需要快取,快取分為一級二級**,越往下優先順序越低,成本越低,容量越大

cpu讀寫速率

暫存器》一級快取》二級快取

棧是在一級快取裡面的,堆是屬於二級快取,所以棧的效率比堆的高

快取(一級快取和二級快取)

快取可以將資料儲存在記憶體中,是網際網路系統常常用到的。目前流行的快取伺服器有 mongodb redis ehcache 等。快取是在計算機記憶體上儲存的資料,讀取時無需再從磁碟讀入,因此具備快速讀取和使用的特點。和大多數持久化框架一樣,mybatis 提供了一級快取和二級快取的支援。預設情況下,...

一級快取和二級快取

引自 許多人認為,快取 是記憶體的一部分 許多技術文章都是這樣教授的 但是還是有很多人不知道快取在什麼地方,快取是做什麼用的 其實,快取是cpu的一部分,它存在於cpu中 cpu訪問資料的速度非常的快,一秒鐘能夠訪問 處理十億條指令和資料 術語 cpu主頻1g 而記憶體就慢很多,快的記憶體能夠達到幾...

一級快取和二級快取區別

一級快取和二級快取區別 一級快取 就是session級別的快取。乙個session做了乙個查詢操作,它會把這個操作的結果放在一級快取中。如果短時間內這個session 一定要同乙個session 又做了同乙個操作,那麼hibernate直接從一級快取中拿,而不會再去連資料庫,取資料。它是內建的事務範...