Re: [閒聊] [瑪奇] 遊戲程式升級成64位元有什麼好處?

看板 C_Chat
作者 jpopaholic (日音スキ)
時間 2023-02-09 19:35:13
留言 8則留言 (6推 0噓 2→)

: 瑪奇韓國原廠已經升級64位元一段時間了 : 台版則是下禮拜(2/16)要升級 : MMORG升級64位元有什麼實質好處阿? : 可以減少位移嗎? : 現在遊戲大多是直接64位元了吧? 首先講益處之前要先認識一下 所謂的32/64/....位元程式 那個位元代表的是啥意思 大家都知道位元,是指一種電腦容量單位,英文為bit(s) 那這裡的容量,又是指啥呢? 記憶體/硬碟/程式? 都不是 而是指電腦(CPU)處理一道程序的單位大小 大家都知道不論何種程式語言,用compile編譯(加link)後 運送到電腦/OS/記憶體/CPU/暫存器 後都會變成數位的0和1(支語:數字) 最後用一堆NAND之類的邏輯閘(底層變成一堆npn pnp半導體)運送電子 而32/64/...位元 則就是運行一道指令單位需要多少個0/1 這時就會有資工系教授/面試官會考以下問題: 請問以下程式指令最後輸出會是啥? int *a; int b; printf("%d\n",sizeof(a)); printf("%d\n",sizeof(*a)); printf("%d\n",sizeof(b)); printf("%d\n",sizeof(&b)); 之類的.... 所以越多位元,代表一道指令有更多的0/1 , 則會有更多的變化 不考慮op code/暫存器/記憶體位址 32位元 一道指令就有2^32種變化 而64位元 則是有2^64種變化 所以32與64位元不單單只是差兩倍 知道原理後就小講一下變成64位元的益處 大家(電蝦老闆)都知道,32位元處理器的電腦 記憶體最高只能塞4G 但很少人知道為何 電腦不只資料用0/1儲存,程式也一樣 一般程式大部分都會躺在硬/軟/光碟 (現行有的會躺在雲端?) 要運作時才會把程式有上述儲存裝置轉移到記憶體 然後利用CPU(與內部的暫存器)去讀/寫裡面的記憶體,運作裡面的程式 假設不考慮op code,單純只是要定址記憶體每個區塊 32位元電腦 定址長度最高也就只有32位元長度 所以最多可定址2^32(0~2^32-1) 又每個cell假設為1byte(剛好是電腦處理資料最小單位) 那這樣電腦最多只能定址2^32 * 1byte(s) = 4GB 所以4GB就是這樣來的 多餘的記憶體除非用特殊的指令,不然一般無法使用到 所以升到64bit首先最有感的就是記憶體可以變大 那記憶體變大有何好處: 最明顯感受到就是運作變快(先不考論程式品質等等其他因素) 上述說過,程式一般都會躺在硬碟,需要用時才會轉移到記憶體 所以假設要運行16GB的程式 32bit就得要搬移4次程式,而64bit只需搬移一次(假設記憶體設置>=16GB) 硬碟運作速度明顯遠慢於記憶體/暫存器運作速度 所以搬移硬碟越多次,速度就會拖越慢 由於64bit比32bit搬移次數少,所以運行得比較快 再來是指令本身 32bit指令只有2^32種變化,而64bit則更多 所以64bit可以把很多行32bit指令融合成一個變新的指令 像是某個步驟32bit需要跑3次,而64bit可能只要跑一次 在頻率相同狀況下,64bit這樣就會比32bit快3倍 所以改64bit運行速度會加快 但是由於指令不同,所以不論是OS和程式需要大幅度的改正 所以就會有一堆相容性問題 以上是小小的科普 --
※ 批踢踢實業坊(ptt.cc), 來自: 1.171.15.2 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1675942515.A.C6C.html

thesonofevil: 先推 免得人家說我看不懂 02/09 19:39

labbat: 早期16bit/32bit爭議跟交流電直流電之爭差不多啦 02/09 19:40

labbat: 之後就多了32bit/64bit總是在重複一樣的情境 02/09 19:41

lucky0417: 有以下嗎 02/09 19:42

SangoGO: 我知道,所以x86比x64好對吧(爆論 02/09 19:44

k960608: 先推 02/09 19:48

kaioken: 是...這樣遊戲程式更可以運用新的硬體資源嗎? 02/09 19:49

forsakesheep: 好像看懂了,又好像沒懂 02/09 19:52

您可能感興趣