2020-09-30:談談記憶體對齊。
uj5u.com熱心網友回復:
8088 ,8031這樣只要8位資料總線的CPU上不需要記憶體對齊32位之后才出現的問題,CPU和記憶體的資料總線,32位總線只能從4n開始的位置開始讀取1,2,4位元組,64位總線是從8n開始的位置開始讀取1,2,4,8位元組,這樣會導致未對齊的資料需要讀兩次,如存盤在1,2,3,4的32位資料,雖然是一個CPU指令但是需要兩個總線周期才能讀取,第一次讀4位元組【0,1,2,3】,第二次讀【4,5,6,7】位元組,然后拼成【1,2,3,4】傳遞給CPU,
記憶體對齊就是優化資料的存盤位置,盡可能從4n,8n開始的位置存盤。包括簡單資料的對齊,和復雜的struct,物件的對齊
uj5u.com熱心網友回復:
百度搜索【福大大架構師每日一題】uj5u.com熱心網友回復:
第一條:第一個成員的首地址為0第二條:每個成員的首地址是自身大小的整數倍
第三條:最后以結構總體對齊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/141951.html
標籤:Java相關
下一篇:HashMap的作業原理
