Chr*_*ber 6 c# memory visual-studio visual-studio-2015
我在性能测试期间遇到了这个问题.
使用x86平台标志编译C#控制台应用程序时,未设置Large Address Aware标志:
dumpbin/headers app.exe的输出:
Dump of file app.exe
PE signature found
File Type: EXECUTABLE IMAGE
FILE HEADER VALUES
14C machine (x86)
3 number of sections
569F0089 time date stamp Tue Jan 19 21:35:37 2016
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
102 characteristics
Executable
32 bit word machine
Run Code Online (Sandbox Code Playgroud)
将标志设置为"Any Cpu"时,生成的exe是Large Address Aware:
Dump of file app.exe
PE signature found
File Type: EXECUTABLE IMAGE
FILE HEADER VALUES
14C machine (x86)
3 number of sections
569F01D7 time date stamp Tue Jan 19 21:41:11 2016
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
22 characteristics
Executable
Application can handle large (>2GB) addresses
Run Code Online (Sandbox Code Playgroud)
请注意,"应用程序可以处理大(> 2GB)地址"标志已设置.
我找不到关于这个主题的任何文件.所有其他堆栈溢出问题建议您必须手动执行此操作:
如何在C#源代码中启用IMAGE_FILE_LARGE_ADDRESS_AWARE?
我可以在Visual Studio中设置LARGEADDRESSAWARE吗?
问题是:这在哪里记录?
AnyCPU 的目的是能够在 x86 和 x64 平台上运行托管代码,同时利用 x64 平台更大的地址空间。执行此操作的唯一方法是在针对 AnyCPU 时将二进制文件标记为大地址感知。此外,如果不是这种情况,将 Prefer 32 位设为默认值就不合适。
这是在哪里记录的?
这并没有明确记录,这是暗示的。
所有其他堆栈溢出问题都表明您必须手动执行此操作
不管所有这些问题和答案如何,只有在针对 x86 时才需要这样做。
归档时间: |
|
查看次数: |
3563 次 |
最近记录: |