热门标签 | 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上,它可以运行很长时间,首先耗尽交换文件,然后使系统完全停止。






推荐阅读
  • 在CentOS上构建Ntopng实时网络流量监控平台
    本文详细介绍了如何在CentOS操作系统上安装和配置Ntopng,一个强大的网络流量监控工具。Ntopng能够提供实时的网络流量分析,并通过Web界面展示详细的流量报告。 ... [详细]
  • 主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压. ... [详细]
  • 本文详细介绍了Java编程语言中的关键字及其用途,包括53个关键字和2个保留字。文章不仅解释了每个关键字的基本功能,还提供了实际应用场景中的使用示例。 ... [详细]
  • 本文详细介绍了在 Windows 7 系统中配置 Nginx 1.10.3 和 PHP 7.1.1 NTS 的步骤,包括修改 PHP 配置文件、处理依赖项以及创建批处理脚本启动和停止服务。重点解释了如何解决常见的运行时错误。 ... [详细]
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • 本文详细对比了Windows 7家庭高级版与旗舰版之间的主要区别,包括技术支持期限、硬件兼容性及特色功能等方面。 ... [详细]
  • 在寻找轻量级Ruby Web框架的过程中,您可能会遇到Sinatra和Ramaze。两者都以简洁、轻便著称,但它们之间存在一些关键区别。本文将探讨这些差异,并提供详细的分析,帮助您做出最佳选择。 ... [详细]
  • 本文详细介绍了Linux内核中misc设备驱动框架的实现原理及应用方法,包括misc设备的基本概念、驱动框架的初始化过程、数据结构分析以及设备的注册与注销流程。 ... [详细]
  • 本文详细介绍了如何在Python3环境中配置Appium1.4.6,并指导如何连接模拟器进行自动化测试。通过本文,您将了解从环境搭建到模拟器连接的完整流程。 ... [详细]
  • 本文介绍了一个项目中如何在Windows平台上实现多声道音频数据的采集,特别是针对DANTE音频接口的8路立体声音频通道。文章详细描述了使用Windows底层音频API进行音频采集的方法,并提供了一个具体的实现示例。 ... [详细]
  • 本文详细介绍了在Mac操作系统中使用Python连接MySQL数据库的方法,包括常见的错误处理及解决方案。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
  • 管理类联考英语复习指南:基础语法(八)
    本文探讨了谓语动词和分词在句子中的作用,包括分词作为状语、定语和宾语补足语的使用方法,以及分词的时态和语态变化。 ... [详细]
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社区 版权所有