2009-08-07 16 views
7

軟件工程師/計算機科學有哪些特定領域在開發64位系統時存在顯着差異?我已經編寫了10年左右的時間,自64位系統破解以來,我的代碼一直沒有改變。如何開發以利用64位系統?

單個編碼器可以作爲副項目編碼的哪些應用程序要求您使用64位技術?

回答

7

任何需要超過4 GB的工作和程序內存的東西肯定都是合格的,因爲這是32位系統直接尋址的最大內存量。

由於64位數字可以駐留在CPU寄存器中,所以需要這些數量的計算結果會提高性能。

2

我們最近將一些內部使用的庫移植到64位。 C代碼根本沒有改變;我們只需要獲得我們鏈接的第三方庫的64位版本,並找出我們需要使用哪些新的編譯器指令。最大的麻煩是找到64位版本的依賴關係,並重構我們的構建系統以處理32位和64位。

這並不是說其他​​軟件不需要修改。例如,如果您打包數據以符合字邊界,那麼現在可能會傾向於在編寫64位系統時採用不同的打包方式。

2

除了地址空間或大型計算之外,雙倍字長可以幫助更多低層次的東西,而且大多數用於將要進行內核入侵或編寫設備驅動程序的人。例如,假設你有一個來自網絡連接的字節流,你必須處理它們。您現在可以將這些字節從主存儲器中一次一個地傳送到CPU寄存器8中,而不是4次。但是我認爲您需要一個「64位感知」字符串庫來利用這一點。

有趣的是,在同一硬件(64位機器)上,從32位SQL Server升級到64位SQL Server(2005)時,我們確實觀察到性能提升。

0

如果您需要提問,您可能不會獲得任何優勢,因爲您可能沒有在代碼中構建任何有關整數大小的假設。幾乎沒有使用情況,而且都是相當低級的,會看到任何加速。非常大數字上的數字和重整數算術會更快(如加密)。

相關問題