Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

zh-tw:rhino:memorylimits [2015/11/14]
zh-tw:rhino:memorylimits [2020/08/14] (current)
Line 1: Line 1:
 +======Windows記憶體限制======
 +> **發表於:** //2008- 9-26 - M. Fugier//
 +>**訂正:** //2008-10-28//
 +>**摘要:**//一個應用程式需要用到多少記憶體?//
 +
 +當談到應用程式的性能,就會提到用到多少記憶體的問題。 答案往往是//4GB記憶體的限制//。 Windows 4GB記憶體的限制意味著一個32位元Windows系統上的應用程式,最多只能在系統上使用到4GB的記憶體。 但這個數據是哪裡來的?
 +
 +定義上來說,一個32位元的處理器使用32位元來標示每個位元組的位置。2^32 = 42億。 這表示一個32位元的記憶體位置只能連結到42億個獨特的位置,而這42億等於4GB。
 +
 +在32位元Windows環境中,每個應用程式都有自己的//虛擬//4GB記憶體空間。 系統記憶體管理器追蹤記憶體映像、分頁檔等。
 +
 +這4GB的空間平均分為兩部分:
 +
 +  * 2GB用於內核或供作業系統使用。
 +  * 剩餘2GB由應用程式使用。
 +每個應用程式都能分配到自己的2GB,但所有程式必須共同分享相同的2GB內核空間。
 +
 +32位元XP、64位元XP以及32位元Vista作業系統中有3GB boot.ini開關,可以修改調整應用程式記憶體空間以及內核記憶空間的分區。 這個開關給每個應用程式3GB的記憶體,就只剩下1GB給內核。對於多數電腦來說這不是一個問題。 然而有些類似終端伺服器的環境並不適合這樣的配置。更多資訊請見 [[zh-tw:rhino:memoryincrease|McNeel Wiki 頁面]]。
 +
 +現今,選擇買一台64位元結構的電腦將記憶體上限增加至2^64個位址,大約等於172億的gigabytes、1680萬terabytes或是 16 千兆exabytes的記憶體空間。
 +
 +一個64位元的系統理論上可以尋址到最大16 exabytes的RAM(隨機存取記憶體),那是大約16,000,000 GB 的RAM。換句話說 2^64位址的上限大概比 2^32 或32位元結構的系統大上百億倍。 
 +
 +現實中就算有,也很少有64位元系統支援15exabytes的RAM,沒有一個Windows版本能夠支援。要建構一個能夠支援那麼大量記憶體的機器,對於電腦硬體預算來說是不可能的。電腦製造商對於RAM位址空間設計的限制大概落於8G到256TB之間。
 +
 +理論上,64位元作業系統上運作的64位元應用程式會指定8TB給虛擬記憶,供使用者處理使用,另外8TB為內核處理,虛擬記憶總共為16TB。
 +
 +目前並不是所有Microsoft 64位元作業系統都以16TB的限制。 相反的他們對於位址空間有實際的限制,並且允許不超過128GB實體記憶的存取。 非商業或是家庭版有更多的限制。
 +
 +  *Vista Home Basic限制為8GB。
 +  *Home Vista Home Premium  限制為16GB。
 +  *Vista Business、Enterprise以及Ultimate允許使用整個128G。
 +
 +如果今天你買一個64位元的電腦,裡面是64位元作業系統如XPx64或是Vistax64。 許多Windows應用程式還沒被更新為64位元的模式。在64位元電腦上執行32位元應用程式,速度往往比他們在原生模式類比執行還要慢。這是因為還要將32位元代碼轉換為64位元格式。
 +
 +然而用於擴展XP、XP64位元以及Vista32位元上執行32位元應用程式2GB限制的3GB開關,對於Vista x64並不是必需的。 Vista x64允許32位元應用程式存取3GB,而且無須設定配置。
 +
 +Rhino 4不是64位元版,但Rhino 5是。 所以您可以在Rhino 5生命週期中看到第一個原生64位元Rhino應用程式。 
 +
 +=============================================================================
 +**Rhino/Flamingo: Windows 處理虛擬內存限制2GB。**
 +
 +Windows Vista、2000、XP (32位元版)有相當於4GB虛擬記憶的32位元虛擬位址空間。 其中2GB可以提供給像Rhino這樣的城市。 另外2GB則是分配給Windows的執行。
 +
 +這表示能夠分派給Rhino(或Rhino 與Flamingo)的最大記憶空間為2GB。
 +
 +如果Rhino (或Rhino 與Flamingo)在//記憶體不足//的訊息下停止執行,您可以藉由觀察Rhino記憶體分配查看:
 +
 +  - 在Windows工作列的空白區域按右鍵,選取**工作管理員**,並執行工作管理員(taskmgr.exe)。
 +  - 在視圖下拉清單選取**選定列(SelectColumns)**,再選取**虛擬記憶體大小**的選項,再按**OK**。
 +  - 一個標為虛擬記憶體大小 (VM Size)的一列就會出現在進程選項標籤上。
 +  - 啟動Rhino並開啟//讓記憶體不足//的工作檔案。
 +  - 在進程選項標籤,選取Rhino3.exe或Rhino4.exe。觀察虛擬大小的使用程度,當到達1,800,000 K (1.8GB)時您就知道剩下能夠讓Rhino使用的記憶體不多了。
 +
 +請參考其他關於降低Rhino (或Rhino與Flamingo)記憶體需求的文章與資訊。
 +
 +更多關於Windows虛擬記憶體:
 +
 +http://www.microsoft.com/technet/prodtechnol/winntas/training/ntarchitectoview/ntarc_7.mspx
 +
 +----
 +關於Windows虛擬記憶體的解釋 - 交換檔、分頁檔、處理空間等等:
 +
 +
 +http://members.shaw.ca/bsanders/WindowsGeneralWeb/RAMVirtualMemoryPageFileEtc.htm
 +
 +----
 +
 +
  
zh-tw/rhino/memorylimits.txt · Last modified: 2020/08/14 (external edit)