相关疑难解决方法(0)

Visual Studio中"首选32位"设置的目的是什么?它实际上是如何工作的?

在此输入图像描述

我不清楚编译器在需要时如何自动知道编译为64位.它如何知道什么时候可以自信地针对32位?

我很好奇编译器在编译时如何知道要定位的架构.它是否分析代码并根据它发现的内容做出决定?

.net c# compilation cpu-architecture visual-studio

195
推荐指数
2
解决办法
6万
查看次数

"首选32位"编译器标志对Visual Studio(C#,VB)意味着什么?

刚刚安装了Visual Studio 11开发人员预览版.在编译指定了AnyCPU目标的托管(C#,VB)应用程序时,我在项目属性中看到一个名为"Prefer 32-bit"的新选项.这似乎不是类库的选项,只是顶级应用程序.

这个标志表示什么?

c# vb.net compiler-flags visual-studio-2012

27
推荐指数
1
解决办法
1万
查看次数

在64位计算机上运行32位C#应用程序

如何强制我的应用程序在64位计算机上以32位运行?

代码是用C#编写的.

.net c# 64-bit x86 x86-64

10
推荐指数
4
解决办法
3万
查看次数

将“任何 CPU/首选 32 位”作为 VS 中的默认构建设置的基本原理

假设在 x64 Windows 机器上使用最新版本的 Visual Studio 和 C# 并分配大量数据。

果然,在使用默认构建设置(如下图为 VS 2019 Preview 2.1)进行编译时,当您的进程达到 4 GB 时,您将耗尽用户虚拟地址空间。这是意料之中的,这里讨论了原因。

在此处输入图片说明

例如,分配本身可以通过创建几百个简单数组来完成,每个数组包含几百万个int元素。

我想了解的是为什么Any CPU/Prefer 32-bit选择 被选为默认构建选项。我也注意到,2015年VS具有相同的默认设置过了,最有可能的每一个出来,因为VS 11,如所描述的版本在这里

通常被问到的问题是“什么是 AnyCPU...?” 并且已经反复回答(1 2 3 4 5),对定位的优点简要地接触x86/ x64/ Any CPU + Prefer 32-bit。但我还没有找到一个明确的答案,为什么被Any CPU + Prefer 32-bit选为 VS 中的默认设置。

查看默认情况下反对为 x64 构建的原因:

  • x64 进程将使用更多内存:对于上面描述的简单示例(数组的数组int),实际情况并非如此。当然,对数组本身的引用将是双倍的(8 个字节而不是 4 个字节),但仅此而已。根据“Windows Internals”一书(内存管理章节),页表结构本身的 PFN 条目在 x86 和 x64 架构上都是 64 位宽,只是有 3 …

.net c# memory visual-studio

6
推荐指数
0
解决办法
786
查看次数