64位平台以及對應用程式開發的影響

2021-06-04 11:46:19 字數 3874 閱讀 8106

1、64位平台的發展

64位平台是計算自然發展的一部分。正如在能夠使用更強大的平台後計算就會從16位移植到32位一樣,最近幾年,幾乎所有的計算機不可避免的都變為64位。主要廠商包括amd與英特爾提供了廣泛的x64處理器,無論是原始裝置製造商(oem)和系統製造商提供的64位系統,還是從發燒友的台式電腦和膝上型電腦到一路至四路多處理器的計算機伺服器,隨著windows x64的發布,64位計算技術已經進入主流市場. 截至2023年底,幾乎所有新的伺服器級的電腦將已達到64位。即時將消費水平預計放慢,但到2023年年底,大多數的新電腦及工作站都已是64位。目前的x86和x64處理器的伺服器級的電腦,**基本上是相同的。即使這些公司期望執行32位版本的伺服器,乙個x64架構處理器也是較好的選擇。 發燒友和工作站級機器的處理器**也基本相同。在未來的一年,我們期待看到大量h獲取廣闊的消費空間. 無論是通過早期的還是後期的,每個人使用的64位計算機架構的好處,便是令人難以置信的性**比,毫無額外費用,每個人都可以達到新水平的計算能力而不會增加成本。

但是,現在的情況對開發人員而言意味著什麼?他們何時轉換為64位計算以及為什麼要轉換為64位計算,這種轉換的內在價值是什麼?通過研究針對64位計算的特定的價值觀,本文將對這些問題做出部分回答。

通過64位平台,開發人員可以利用其應用程式的更多的效能,這樣不僅激發出更有效的應用程式,而且還允許這些應用程式用於新用途、新使用者和新市場。使用64位平台,開發人員在進入這些新市場的同時可以利用他們目前在32位平台上的**和專業知識方面的投入。

2、效能

更大的記憶體訪問和64位暫存器都為64位系統提供了更高的效能。

2.1更大的記憶體訪問:

由於32位體系結構的記憶體高達4gb,因此使用3gb記憶體的應用程式將可用的作業系統記憶體限制為最多1gb。應用程式的記憶體增加勢必以作業系統的記憶體減少為代價,這樣會在某種程度上降低作業系統的效能和吞吐量。對於需要大量記憶體才能有效處理大量存檔資訊的系統,如(網路伺服器和資料庫伺服器)而言,這是個值得注意的問題。

同時,如果32位系統上的乙個應用程式需要3gb 以上的記憶體,就必須在該應用程式**內部進行一些特殊操作,例如,實體地址擴充套件(physical addressing extensions,pae)和位址視窗擴充套件(address windowing extensions,awe),允許32位應用程式實現api(或者在pae/awe頂部對自己的記憶體進行管理)以訪問2或3gb以上的記憶體。但是,這些額外的**需要更多的維護和更多測試,同時還會帶來許多需要解決的潛在問題。所有移植到64位平台或者為64位平台開發的應用程式的乙個顯著好處是增加了記憶體的可用性,與32為系統相比,在64位系統中無須額外的編碼或特殊的api就能使用額外的記憶體。而且,較少的**提高了應用程式的整體效能,使用者會更加滿意。

64位cpu可以處理64位操作,還可以對64位的記憶體位址空間進行定址。64位體系結構提供將近4.5千兆位元組的可用記憶體,遠大於當前(或不遠的將來)應用程式可能需要的記憶體。

執行於這些體系結構上的windows作業系統允許16tb的虛擬記憶體(每64為程序8tb)。即使是執行在64位作業系統上地32為應用程式也能從該增加的記憶體中受益。預設情況下,64位作業系統的32位程式可以使用多達2gb的記憶體並對它進行定址,這與標準的32位系統相同。然而,應用於該應用程式的二進位制或exe檔案的標誌將這個空間加倍,從而允許訪問32位程序的4gb直接可定址記憶體。

這比在boot.ini檔案中設定3gb開關的32位windows系統上相同的應用程式可定址的記憶體空間多了1gb。與32位系統不同,在64位系統上,這樣做不會減少作業系統的可用記憶體數量,記憶體受限的32位應用程式將在64位windows系統上即刻得到緩解。

本機64位作業系統還會從增加的記憶體中得到相當大的好處。所有緩衝區,快取記憶體,控制代碼表等變得更大,並且都已經適應了可用受支援的64位定址模型定址增加的記憶體,因此,作為作業系統增加的空餘空間的結果,開發人員可以期望作業系統具有較高的可靠性和穩定性,這會進一步提高其應用程式的可靠性和穩定性。

為了獲取快取記憶體並增加其相應的效能而實現大的記憶體緩衝區,乙個64位應用程式會得到與底層作業系統相同的好處。較大的緩衝區和快取會使資料訪問速度更快,並且支援更多的併發使用者。增加的記憶體還會引發新的使用方案,新的客戶方案,以及應用程式中新的市場細分,這一切都取決於具體的應用程式。資料庫系統是一組突出了更多直接可用記憶體的優點的應用程式,sql server 2000 64位版本,oracle和其他資料庫系統都進行了遷移,以便在作業系統平台上支援64位以及更多能打動人心的、前所未見的效能。

表1 .記憶體位址比較, 32位和64位windows

2. 2 64位暫存器

暫存器是乙個系統可提供的最快記憶體型別。他們建立並儲存cpu操作和其他計算的結果。32位x86 cpu包括8個通用暫存器。64位x64處理器由16個暫存器,itanium處理器擁有更先進的暫存器引擎(128個浮點暫存器和120個通用暫存器),並且支援更複雜的暫存器操作,這些都是通過全新的體系結構實現的。所有cpu暫存器都允許本機執行64位操作。通過提供更多暫存器以及更多寄存空間,64位處理器(以及為他們編寫的應用程式和作業系統)可以更有效地處理資料,每個時鐘週期都可以移動更多資訊。

microsoft針對windows 64位平台的開發工具支援使用更多的暫存器,從而幫助應用程式開發人員為64位平台開發速度更快、效能更好的應用程式。對所有的編譯器,鏈結器和庫進行了重新設計,以便充分利用支援的64位處理器的較大的暫存器組。分析工具和優化內建有關基礎的64位體系結構的知識,從而允許開發人員充分利用64位平台,這樣會產生更快的應用程式效能,並且增加使用者滿意度。諸如itanium處理器上的暫存器重新命名/旋轉這樣的特殊功能為應用程式帶來了額外的效能改善。使用microsoft和許多其他廠商開發的工具,開發人員可以使用這些功能並獲得更高的應用程式效能,而無需進行任何其他工作。

在32位開發中,基於整數的計算必須使用32位暫存器,在64位系統上,用於相同計算的暫存器是64位的,像c/c++這樣的語言完全支援64位操作。在32位系統上處理64位資料需要開發人員拆分資料,並對相同的操作使用兩個32位暫存器。

3、 新的市場機會4、客戶端和伺服器:更好的**效能比

windows server 2003和windows xp支援x64 擴充套件體系結構。他們通過提供32位和64位應用程式的高效能操作,為效能關鍵的應用程式提供最通用的平台。在可見的很短的時間內,基於x64 的硬體將成為新的主流平台。

這就是引入xeon體系結構的原因,與之相容的amd-64系統的可用性支援所有人使用64位系統。現在,可以用32位系統的**獲得64位系統。64位系統將很有可能用新的硬體代替市場上的32位系統。所有系統都將在支援64位的處理器上執行,當客戶需要更多能力和記憶體時,他們將公升級到64位windows作業系統,在相同的硬體上執行相同的應用程式,唯一的額外硬體開銷是他們可能選擇增加的記憶體。

microsoft還承諾支援itanium體系結構。用於基於64位itanium系統的windows server 2003對於高伸縮的應用程式而言是最經濟有效的平台,因為它可以用最低的開發,部署和管理成本提供最高端別的可伸縮性。

5、結論

對於開發人員而言,64位平台為其延伸了新的用途、新使用者以及新的市場。對於內部的開發人員而言,這意味著他們的工作將為其組織提供更大的價值。對於商業開發人員而言,獲得這些好處所付出的任何代價微乎其微。當他們抓住64位計算所增加的價值時,即可利用現有的知識和**投入。

目前,不管是windows還是unix/linux系統,都已經提供了32位和64位的版本,主流的計算裝置,從客戶端工作站到多路伺服器,其cpu也都已經大量採用64位裝置。這對於需要處理海量資料和複雜的高效能空間分析的gis軟體來說,已經具備了乙個很好的硬體裝置和軟體基礎。但目前主要的gis產品,大部分都還是通過32相容方式執行在64位平台上,雖然獲得了一些效能的提高,但還沒有充分發揮基礎裝置的能力。即將發布的基於「共相式」核心ugc的supermap gis 2008產品,將提供真正的64位版本,可以支援windows/linux/unix的64位系統,為客戶帶來前所未有的高效能gis平台。

Android L 64位相容32 應用程式的認識

關於android l 64位系統相容32位應用的實現的簡單分析。android l 的zygote程序的實現不同於之前的版本,除了有zygote程序之外還有zygote64程序。在init.zygote32 64.rc中有明確指出 在不考慮有32 64相容庫的情況下,乙個程序如果要正確執行,就必須...

Android L 64位相容32 應用程式的認識

關於android l 64位系統相容32位應用的實現的簡單分析。android l 的zygote程序的實現不同於之前的版本,除了有zygote程序之外還有zygote64程序。在init.zygote32 64.rc中有明確指出 在不考慮有32 64相容庫的情況下,乙個程序如果要正確執行,就必須...

32位程式移植到64位平台前的準備工作

32位程式移植到64位平台前的準備工作 2006 02 13 09 18 46 我來說兩句 收藏 我要投稿 字型 小大 我們最近完成的乙個專案是移植乙個大型的32位應用程式,它可在64位環境中支援11個作業系統平台,並且程式的源 超過了30萬行。由於此32位程式是在幾年前分成幾部分開發而成,所以極有...