為什麼有些軟體會區分x86版和x64版?而有些只有x86版?

時間 2021-06-06 22:03:58

1樓:

從架構說起:

目前市場上常見的PC CPU架構主要是兩種,乙個是英特爾的IA64,乙個是AMD的AMD64架構,當然,前者沒人用了,所以主要是AMD64架構。以前的CPU架構是x86的,也就是32位。

不同的架構是不相容的,實際上32位軟體根本不能在64位上執行。不能執行32位程式,那作業系統根本就沒人用了。於是出了乙個技術,把x86架構的翻譯成x64。

在c:\windows\system32就是64位執行庫,c:\windows\syswow64就是32位執行庫。

因此實際上32位程式依舊好好的在64位上跑,但是64位程式缺不能在32位上跑!

64位於32位在小型開發上只是編譯一次跟編譯兩次的區別,而且效能差距也不大,程式設計師都是懶惰的,編譯一次32位能各種跑為嘛要再編譯一次,還要麻煩去倒騰那些依賴,因此一般只編譯乙個32位。

中大型開發上就很講究了,

1、64位程式在64位系統上執行效率要比32位高,但是由於定址的問題,64位程式一般也比32位占用更大的記憶體。

2、乙個大型工程是乙個個小專案累積起來的,上面提到的,小專案很多沒有64位版,有原始碼的還可以自己編譯,沒原始碼的就很麻煩了。乙個大專案遷移64位版一般需要解決相當多的依賴,這也是開發成本的問題。

綜上所述,乙個程式開發64位版本與否需要綜合考慮。總結下來就是:小專案懶得改,大專案太燒錢。

至於記憶體,其實除了遊戲、PS、3dsmax這些耗記憶體大戶,其它基本不需要考慮記憶體不夠的問題

2樓:lol就是那只熊貓

64相容32位的,所以開發x86的程式,32 64作業系統都能用。

如果只開發64位的,32的系統就不能用了。

同時開發兩個版本呢,會需要多花錢,所以沒有迫切需求的話就不開發64位的了。

64位windows執行32位程式是通過 WOW64這麼個子系統執行的。

最根本的差別是,x64的程式可以呼叫更大的記憶體。

3樓:lumen solarized

對於為什麼區分64位32位

我先問你個問題吧, 為什麼有的程式要區分iOS和Android呢而且你還誤解了很多, 不是64位相容32位首先, 我們大多用的是最初amd提出的乙個x86_64方案, 這個方案可以提供乙個32位的執行的能力, 實際上64位系統跑64位程式和跑32位程式有本質區別, 以至於你的作業系統很多組成部分都要一式兩份

arm架構64就不能跑32位

從原理上來講, 64位和32是不相容的

至於有的程式不提供64位. 那是他懶得給你提供64位版本反正你能用同時這程式不需要3g以上的記憶體

而且現在已經有很多程式不提供32位支援

pc98和x86有什麼不同?

陳靜靜字椰蓉 這個題目的問法很模糊。首先PC98是指NEC的PC 9800系列電腦還是1998年微軟提出的一種windows PC的準則?我想你大概率說的是NEC的PC 98系列。x86一般指的是CPU的指令集架構,所謂x86電腦一般就泛指現在的常用電腦硬體架構。關於X86的概念,你可以看看這位的回...

為什麼微軟要開發 x86 模擬器?

為什麼微軟要開發 x86 模擬器?這問題很簡單啊,想進軍ARM,把x86扔了的同時還不能全扔,不然使用者不願意啊 為什麼不做乙個類似於 Wine 的東西,程式需要的時候再呼叫 Win32 的 API,感覺用模擬器會有效能損失還耗電。既然微軟想換到ARM上,那就要有個過渡,費電確實有可能,不過這個模擬...

x86的8和6分別指什麼?

x86 代表著 類似於8086的乙個CPU系列 Intel早期CPU的型號是4004 8008 8080 8086 8088,再之後就是80286,80386 x86 指的是ISA家族 昴星 英特爾早期的幾款處理器,8086,80286,80386,80486,80586,他們的指令集是乙個系列的,...