热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于.net:64位的内存泄漏是否需要比32位更长的时间才能导致OutOfMemoryException

Doesamemoryleakin64bittakelongertocauseanOutOfMemor


Does a memory leak in 64 bit take longer to cause an OutOfMemoryException than 32 bit


在跟踪我正在处理的项目中的一些内存泄漏的过程中,我还一直在努力更新各种硬件 API 库。其中一些是非托管的 32 位库,它们强制我们的应用程序编译为 x86;这本身不是问题。我正在努力将这些库升级到 64 位版本,以便我们的应用程序不必以 32 位运行,但这让我想知道内存泄漏和可寻址内存空间。

鉴于内存泄漏,在 64 位进程中运行时,应用程序理论上是否能够在遇到 OutOfMemoryException 之前运行更长的时间?这个

至少有两种情况


  • 内存碎片 - 没有连续的内存块来分配大对象,因此即使似乎有足够的可用内存也可能会引发此异常


  • 低物理内存 - 根本没有足够的可用内存(无论是否连续)来分配新对象





相关讨论




  • 我会说不,只要内存总量相同。可能存在开销差异。


  • 与 32 位进程相比,64 位进程的地址空间很大,因此您可以在遇到问题之前分配更多。


  • 对@BartFriederichs 评论的支持告诉我们,您实际上根本不知道 Windows 是如何管理内存的。物理内存总量与每个应用程序实际寻址和"使用"多少内存没有任何关系。






绝对会花更长的时间...

但是,根据您的机器和泄漏过程,多长时间会有所不同...

虽然 x64 可以支持 8TB 的内存,但您的计算机很可能不允许这样做。因此,假设您有 4GB 的内存和 12GB 的页面文件,那么您可能有大约 14GB 的内存可供分配。 (系统有一些开销阻止了完整的 16GB)

查看这篇文章了解更多信息。



相关讨论





  • 感谢您的链接。在大多数情况下,按理说额外的内存空间会延迟最终的异常。我发帖是想看看人们在这种情况下有什么想法或经历,当然我希望消除所有的内存泄漏;这并不总是那么容易,我必须分阶段进行。






如果您在 32 位进程中耗尽了地址空间,那么迁移到 64 位进程将使您运行更长的时间。在您耗尽地址空间之前,系统可能会用完页表资源。

如果您的页面文件空间不足,那么无论是 32 位还是 64 位,您的进程都将拥有相同数量的可用内存。在这种情况下,由于 64 位进程需要更多内存用于同一事物(8 字节指针),因此它实际上会比同一进程的 32 位版本更快地耗尽内存。



相关讨论




  • 好的一点是,64 位进程与 32 位进程中可用的内存量相同。






当然会。在 x86 系统上,您只有大约 2GB 的内存可供您的应用程序使用。当您全部泄漏时,您就完成了,无论您拥有多少物理或其他 RAM。

在x64上,它可以运行很长时间,首先耗尽交换文件,然后使系统完全停止。






推荐阅读
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • 本文记录了作者对x265开源代码的实现与框架进行学习与探索的过程,包括x265的下载地址与参考资料,以及在Win7 32 bit PC、VS2010平台上的安装与配置步骤。 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 2月4日每日安全热点节日期间某企远程办公遭XRed攻击 ... [详细]
  • .netFramework4.5框架下运行4.0站点程序的问题
    事件的起因:公司部署好的站点突然发现出了问题,经过一步步的查找(查找问题所在的艰辛只有自己知道),查源代码发现 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • 第2讲 Android Camera Native Framework 初识cameraserver进程
    本讲是AndroidCameraNativeFramework专题的第2讲,我们初识CameraServer,包括如下内容:Camera ... [详细]
author-avatar
鹤Cheire_295
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有