瀏覽單個文章
rick070
Advance Member
 

加入日期: Jun 2001
您的住址: Taipei
文章: 481
引用:
作者Weichung
推...

哈哈... 沒錯...

現在的CPU, 叫他執行大部分的64位元指令, 他所花費的時間是執行32位元指令的兩倍
所以實際上不會比較快
只有少部份指令會比較快... 但某些應用時, 一次執行64位元指令時, 會比執行32位元指令快
那就是大數運算, 當你一次需要計算64位元的加減法(乘除)時,
64位元指令會比32位元指令來得快(因為32位元指令的程式, 自己還需要拉拉雜雜的執行一堆東西)

而也有部分指令, 執行64位元所花的時間是跟32位元指令相同的
但是當系統沒需要用到64位元的部份, 而硬是去做64位元的運算, 而又用到那些會花費兩倍時間的指令時
效能就會比較差
在資料流的狀態效, 快取的效能會提升... 但在非資料流模式, 而又僅需要用到32bits時, 硬坳64bits會加重快取/記憶體的負荷...

但整體上來說, 64bits還是會快一點...



請問以上理論點解呀?
32bits 的app 要如何硬用 64bits 跑?

當跑32bits app 時一樣只會使用 IA-32 的指令集(與 Athlon XP 一樣)
當跑64bits app 時才會切換到x86-64 的指令集
對K8 來講~是"相容", 而不是"模擬"~(Intel 有此類CPU ,且32bits 效能用慘字形容)

應該沒有說32bits 的程式用 64bits指令硬去跑的道理..(那現在用K8且不是64bits OS與64Bits App的??)

且WinXP x64 不是"只能"跑64bits 的app , 只有OS 系統相關部分才需全部使用64bits(ex:driver,system files),它一樣也可以正常使用32bits 程式

時間2倍的理論基礎何來~~? (實例)

有文章來源的話更好~

望大大解答
舊 2005-06-30, 12:55 AM #126
回應時引用此文章
rick070離線中