我知道在32位Windows上運行的32位進程的默認頁面大小爲4K,而在64位Windows上運行的64位進程的默認頁面大小爲8K。但是,在64位Windows(即WOW64)上運行的32位進程的實際頁大小是多少? 4K? 8K?在WOW64上運行的32位進程的實際頁面大小是多少?
回答
頁面大小爲4K仍然 - 在最大4GB的尋址RAM內存
虛擬內存大小爲1M的頁面。在Intel Itanium處理器上,如果同時運行相同的32位應用程序的兩個或更多實例,WOW64會增加 的重大開銷。這是由於Intel Itanium上的本地8 KB 頁面造成的,這使x86架構上原生4 KB頁面的仿真複雜化(更多頁面標記爲 可寫;所有可寫頁面對於該過程是私有的)。這可能會對某些 處理器上的終端服務的可擴展性產生負面影響。這不適用於x64處理器。
瞭解更多關於WOW64 here
這是關於安騰,它是現有架構,但不是x64,這是人們在談論64b Windows時通常所表達的意思。 – Suma 2013-02-11 13:16:17
@Suma x64位架構來自Itanium。大多數x86體系結構的說法,Pentium來自80386 – 2013-02-11 17:17:13
的方式不一樣,它沒有。 x64是從x86重新開發的。它與Itanium沒有任何共同之處。英特爾開發的Itanium是第一個,並且是從x86開始的徹底改變。 Itanium未在標記的服務器之外使用。 AMD隨後將X64作爲競爭解決方案進行開發,並且非常成功,它也被英特爾使用。見例如[Itanium Wikipedia](http://en.wikipedia.org/wiki/Itanium#Other_markets)「AMD選擇了一個不同的方向,設計了不太重要的x86-64,這是對現有x86架構的64位擴展」 – Suma 2013-02-12 08:51:45
理想情況下,你應該叫GetSystemInfo()
和檢查SYSTEM_INFO.dwPageSize
。
順便說一句,我懷疑你在64位Windows中有8KB頁面。 x86/64 CPU支持以下大小的頁面:4KB(所有模式),4MB(32位非PAE),2MB(32/64位PAE),1GB(64位,始終爲PAE)。您可以從Intel(或AMD)的CPU手冊中找到它。
這個問題的正確答案是「這取決於哪個處理器」。
Itanium使用8KB頁面。
X86-32和x86-64根據需要使用4KB,2MB和1GB頁面[請注意,要使用2MB和1GB頁面,內存需要是2MB/1GB大小的倍數,並且必須與2MB/1GB]。
其他處理器(例如ARM(目前僅支持32位操作系統))通常使用4KB頁面,但也可以使用64KB頁面。
如果你能找到一臺舊的DEC Alpha處理器和操作系統相匹配,那也會使用8KB的頁面。
這是正確的,但正如[Aniket的回答](http://stackoverflow.com/a/14809529/16673)中的引用所示,即使在Itanium上,4KB頁面也適用於x86應用程序。 – Suma 2013-02-12 08:53:12
- 1. 32位進程的頁表大小是多少?
- 2. 32位和64位版本的Windows Os的頁面大小是多少?
- 3. WOW64:從32位進程獲得x64%CommonProgramFiles%
- 4. UNIX中的頁面大小是多少?
- 5. 將32位Web應用程序作爲WOW64在64位服務器上運行?
- 6. 檢查正在運行的進程是32位還是64位
- 7. Windows 64位處理器上的最大進程大小是多少
- 8. Mahout LDA:實際上可以使用的最大字典大小是多少?
- 9. WOW64 32位系統:恢復
- 10. 使用WoW64運行32位應用程序實例的64位Citrix服務器執行的內存處理
- 11. 爲什麼上傳的二進制大小比實際大小要小得多?
- 12. 在windows2003 enterprise x64 sp2上運行的32位進程轉儲
- 13. 如何我可以重新運行我的C#應用AnyCPU 64位,如果它運行的是32位(WOW64)?
- 14. 在Windows XP上運行32位程序
- 15. 多進程Java程序是在運行JVM的實際機器上下文中的單個進程嗎?
- 16. 如何讓我的JRE實際以32位模式運行?
- 17. 在使用16位地址和頁面大小爲512個地址的機器中,執行進程的最大大小是多少?
- 18. Java進程大小的32位和64位
- 19. 如何查找任意進程是否在wow64下運行?
- 20. 是否有可能強制在32位進程中運行的.NET dll像「64位進程一樣運行」?
- 21. 是byte []的byte.length()的最大大小還是實際大小?
- 22. 64位JVM上運行的Eclipse 32位
- 23. 32位有符號整數的最小值是多少?
- 24. 在32位或64位matlab上運行?
- 25. Scala的ListBuffer的大小運行時間是多少?
- 26. char []的大小是多少?
- 27. RLMInt的大小是多少?
- 28. 32位程序實際上是否在64位操作系統上使用更多內存?
- 29. OpenLayers規模:單位大小是多少?
- 30. 碎片大小在32位?
它仍然是4K。 – 2013-02-11 09:44:32