Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >.Net 应用考虑x64生成

.Net 应用考虑x64生成

作者头像
SpringSun
发布于 2022-09-02 09:13:41
发布于 2022-09-02 09:13:41
28300
代码可运行
举报
文章被收录于专栏:技术赋能学术技术赋能学术
运行总次数:0
代码可运行

在x86架构下使用32位应用程序,理论上32位能够分配4G的大小空间,但实际上默认 .NET Framework 可以创建一个不超过 2 GB 的对象,在实际使用过程中可能使用到1.5G的样子就会报内存溢出异常。

刚写了一个读取数据在内存中组装xml的程序,有10多万条数据,结果程序运行一段时间后就报内存溢出。而我本机是16GB,内存消耗不到8G,我又不想修改程序。所以我就将程序生成x64,不仅成功处理而且速度提升不少。

目前只要是比较新的vs在程序生成的时候VS默认选择的是32位,所以生成的时候尽管你的PC是64位,但是程序任然以32位运行。

这样生成的程序考虑兼容性,目标平台any cpu ,默认首选32位。

我们只需要将目标平台选择x64即可。

默认情况下,在 64 位 Windows 操作系统上运行 64 位托管应用程序时,可以创建一个不超过 2 GB 的对象。 然而,在 .NET Framework 4.5 中,可以增加该限制。以为CLR也有32位和64位之分,所以 .NET Framework要求4.5+

我的程序时4.6.1,然后如果你发现数组这些对象还是不能使用超过2G,那么你可以在config里面将gcAllowVeryLargeObjects配置添加进去。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<configuration>  
  <runtime>  
    <gcAllowVeryLargeObjects enabled="true" />  
  </runtime>  
</configuration>  

同时可以通过在VS 2022 中配置生成,生成的时候选择要生成的平台就行了 。了解生成平台

并且目前新的VS 2022本身IDE也是64位,所以了解下而不是都默认选项有时候会事半功倍。

https://devblogs.microsoft.com/visualstudio/visual-studio-2022/

我的xml生成程序如下,我们使用不同位数对比下处理时间。

x86:

x64:

由于数据量大的时候加载内存32位会内存溢出,所以我减少了数据让程序都能运行,只有几万条,但还是可以看出来x64的处理时间要少些。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
X86架构和X64架构有什么区别?
X86指的是支持32位的指令集架构处理器,最初由英特尔在1978年发布的 intel 8086,这个系统主要为X86结尾所以简称X86,而X86有16位和32位,现今大多数用的是32位处理器。
逍遥壮士
2022/12/01
1.8K0
.NET平台系列17 .NET5中的ARM64性能
  .NET团队使.NET 5大大提高了常规性能和ARM64性能。在《.NET5中的性能改进》博客中可以查看总体改进情况。在这篇文章中,将描述我们专门针对ARM64进行的性能改进,并展示对我们使用的基准的积极影响。我还将分享一些我们已经确定并计划在将来的版本中进行性能改进的其他机会。
张传宁IT讲堂
2021/06/11
6560
.NET平台系列17 .NET5中的ARM64性能
WPF 编译为 AnyCPU 和 x86 有什么区别
本文告诉大家,编译为 AnyCpu 和 AnyCPU(Prefer 32-bit)和 x86 有什么区别
林德熙
2018/09/19
2.2K0
WPF 编译为 AnyCPU 和 x86 有什么区别
常说的32位和64位有什么区别?
https://baike.baidu.com/item/%E4%BD%8D%E3%80%81%E5%AD%97%E8%8A%82%E3%80%81%E5%AD%97/15650262
简单并不简单
2019/09/17
10.4K0
常说的32位和64位有什么区别?
.NET8 硬件加速指令的支持
.NET 有着悠久的历史,在通过 JIT 编译器本质理解的 API 提供对额外硬件功能的访问。这始于 2014 年的 .NET Framework,并在 2019 年引入 .NET Core 3.0 时得到扩展。从那时起,运行时在每个版本中都迭代地提供了更多的 API 并更好地利用了这些 API。
InCerry
2023/12/26
3320
.NET8 硬件加速指令的支持
x86与x64的区别,云服务器如何选择操作系统?
云服务器中windows系列系统通常都有x86与x64两个版本。x86与x64有什么区别?云服务器用户该如何选择操作系统? x86与x64的区别: 1、x86代表的是32位的操作系统;x64则代表的
静一
2018/03/26
5K0
x86与x64的区别,云服务器如何选择操作系统?
ARM版Win10终于能用上x64程序了,微软发布x64模拟器预览版
鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 现在,ARM64设备上的Windows系统,也可以运行64位的x86应用程序(x64)了。 微软最新宣布,已经在Windows Insider里,面向测试人员发布了ARM版Win10的x64模拟器。 这就意味着,使用ARM芯片的笔记本用户,以后可以直接安装、运行几乎所有Windows exe应用程序,而不必再被兼容性问题劝退了。 此前,在Surface  Pro X这样的ARM设备上,Windows只能运行原生的ARM应用,以及32位x86应用,
量子位
2023/03/10
5.2K0
ARM版Win10终于能用上x64程序了,微软发布x64模拟器预览版
IA64与x86-64的区别
说到IA-64与x86-64可能很多人会比较陌生。不知道你在下载系统的时候有没有注意过,有的地方标注了x86/64/ia-64全版本等字样。那x86/x64/ia-64都是什么东西的版本呢?答案就是CPU。
reizhi
2022/09/26
1.2K0
IA64与x86-64的区别
.NET周刊【11月第3期 2024-11-17】
https://www.cnblogs.com/netry/p/18543378/scalar-an-alternative-to-swagger-in-dotnet-9
InCerry
2024/11/23
1020
.NET周刊【11月第3期 2024-11-17】
#x64汇编第二讲,复习x86汇编指令格式,学习x64指令格式
在X86下,查看inter手册可以清楚的看到x86汇编的指令格式. 图标如下
IBinary
2019/05/25
1.7K0
x64汇编第二讲,复习x86汇编指令格式,学习x64指令格式
在X86下,查看inter手册可以清楚的看到x86汇编的指令格式. 图标如下
IBinary
2019/06/11
2.2K0
x64汇编第二讲,复习x86汇编指令格式,学习x64指令格式
X64汇编之指令格式解析
最近由于项目组内要做特征码搜索的东西,便于去Hook一些未导出函数,你懂得...于是就闲着学习了一下x86/x64的汇编指令格式。x86的汇编指令格式请参照http://bbs.pediy.com/s
战神伽罗
2019/07/24
4.3K0
X64汇编之指令格式解析
从ASP.NET Core 3.0 preview 特性,了解CLR的Garbage Collection
在阅读这篇文章:Announcing Net Core 3 Preview3的时候,我看到了这样一个特性:
ShenduCC
2019/06/15
5290
Android中架构X64与X32的不同
众所周知,安卓支持3类处理器(CPU):ARM, Intel和MIPS。其中ARM无疑被使用得最为广泛。Intel因为普及于台式机和服务器而被人们所熟知,然而对移动行业影响力相对较小。MIPS在32位和64位嵌入式领域中历史悠久,获得了不少的成功,可目前Android的采用率在三者中最低。 处理器(CPU)
胖虎哥
2023/05/10
1.2K0
.NET平台系列19 新世界中的.NET大统一平台架构解析
  微软在.NET跨平台之路上付出了巨大的艰辛,同时做了海量的工作。首先推出了统一的API标准规范库 .NET Standard,并不断补充完善标准库,截止目前(2021-5-26)最新版本为 .NET Standard 2.1。之后发布了跨平台解决方案 .NET Core,同时建立.NET基金会,并大力发展生态建设,世界知名IT公司纷纷加入并贡献,社区发展异常活跃。收购Xamarin公司后,Mono也正是加入微软大家庭,填补了微软技术栈在移动APP开发领域的技术空白。
张传宁IT讲堂
2021/06/10
1.9K0
.NET平台系列19 新世界中的.NET大统一平台架构解析
Windows 7 操作系统32位与64位的区别?
查看电脑系统是多少位方法:右击我的电脑属性即可查看到。 win7系统显然已经成为了当今的主流电脑操作系统,win7 系统有32位与64位之分(32位操作系统通常也会用x86来代表,而64位操作系统则会用x64代表),相信很多朋友也听说过,只是对此还并不了解,甚至很多用户根本不知道自己电脑上的到底是32位还是64位的win7,那么小编这里就跟大家分享一下关于这两个版本之间的一些区别于联系! 在安装系统的时候必须看我们电脑的硬件支持,如果CPU支持64位操作系统,且内存大于4g以上的,就可以选用64位操作系统,不过我们平常用的大多数软件都是32位,有些软件需要最新版本才能在win7上稳定运行,CPU寻址是64位要比32位快2倍,一个32位的XP最高内存只能认到3.25G,而64位的win7最高可支持192G内存。
Lcry
2022/11/29
1.2K0
Win7 64位和32位有什么区别?
64位操作系统的设计初衷是:满足机械设计和分析、三维动画、视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求。换句简明的话说就是:它们是高科技人员使用本行业特殊软件的运行平台。而32位操作系统是为普通用户设计的。
点云PCL博主
2019/07/30
1.9K0
SkeyePlayer rtsp播放器源码解析之64位编译方案
SkeyePlayer支持多路拉流播放,而拉流解码的过程需要占用系统资源,而我们都知道32位程序最多只能利用4G的内存,而现在动则8G,16G的内存空间是完全不能被利用的;所以,为了充分利用内存资源,我们准备将SkeyePlayer改成64位版本。
Openskeye
2023/04/20
6140
CoreHook:基于.NET Core运行时实现的Windows HOOK库
今天为大家介绍一款基于.NET Core运行时实现的Windows HOOK库,CoreHook。
FB客服
2019/06/18
1.7K0
oracle odp.net 32位/64位版本的问题
如果你的机器上安装了odp.net,且确信machine.config也有类似以下结节:(64位+.net 4.0环境下,machine.config可能会有4份,分别对应于.net2.0/4.0的32/64位版本,要每个都检查过去哦) <DbProviderFactories> <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Prov
菩提树下的杨过
2018/01/22
1.5K0
oracle odp.net 32位/64位版本的问题
相关推荐
X86架构和X64架构有什么区别?
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验