簡體   English   中英

使用x86程序集編譯到x64時的內存使用情況

[英]Memory usage when compiling to x64 with x86 assemblies

如果我的應用程序是64位應用程序(在64位Windows服務器上)但混合了x86和x64程序集,則.net框架的行為如何? 它可以作為完整的64位應用程序運行嗎? 據我所知x64和x86在內存尋址和cpu指令集方面有所不同。

現在的問題是,如果混合使用x64和x86程序集,內存尋址將如何工作?我是否能夠在不僅使用x64編譯程序集的基於x64的應用程序中使用2GB以上的RAM?

如果問題不清楚或您需要更多信息,請發表評論。

謝謝!

Windows進程可以是32位或64位,由加載的第一個程序集(您的可執行文件)確定。 如果是AnyCPU那么這將是64位在64位系統和32個系統的32位(我省略青睞32位的簡單,而且可以安全地認為,標志為86的別名,也見有什么的目的“首選32位” )。

現在的問題是,如果混合使用x64和x86程序集,內存尋址將如何工作?我是否能夠在不僅使用x64編譯程序集的基於x64的應用程序中使用2GB以上的RAM?

64位進程無法加載32位程序集,因此您的問題根本不適用。 如果您嘗試加載32位程序集,則將具有BadImageFormatException

此外,當您嘗試構建解決方案(將AnyCPU與x86和x64混合使用)時,還會收到特定的警告MSB3270。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM