c# 虚拟内存 使用 过大?

问题描述

c#windowform开发的。。占用物理内存到不大,但是虚拟内存占用过大,虚拟内存使用到1G多的时候程序就卡死以及报“Outofmemory“”。请问,通过什么方法解决?要么通过什么方法释放虚拟内存呢?

解决方案

解决方案二:
考虑如何释放内存,而不是如何释放虚拟内存
解决方案三:
这是你的windows系统设置的问题。贴出你的电脑的分页文件大小设置,截个屏来看看!
解决方案四:
有的时候,虽然windows系统的分页文件大小设置足够(例如16G),但是用户可能胡乱修改了系统用户对系统文件的访问权限,那么就是人祸。此时就只能重装windows系统。所以不要动不动就去修改windows权限。少听那些谣言。
解决方案五:
对于程序来讲,才没有什么物理内存、虚拟内存的概念呢所以你应该说究竟是什么原因导致outofmemory
解决方案六:
虚拟内存。不就是为了弥补物理内存的不足从磁盘划分一块保存页面文件麽。C#不是号称托管内存的麽。内存换页是操作系统级的吧。合理使用和释放内存/加大内存
解决方案七:
必要时可以手动释放内存。GC.Collect()

解决方案八:
建议从程序本身找找问题,一般这种问题在程序长时间运行,申请的内存得不到释放导致的。特别是关于数据库连接,流对象的使用等,用完后没能及时释放,导致内存不断攀升。
解决方案九:
另外监测下你的程序内存使用情况,如果升至1G到2G,程序很可能就会报错这种错误
解决方案十:
▷▷▷▷▷[ErrorSystemMomory:RAM使用状况]◁◁◁◁◁1.1TotalPhysicalMemory:3,772MB1.2FreePhysicalMemory:1,247MB2.1TotalPageFileSize:3,772MB2.2FreeSpaceinPageFile:3,454MB3.1TotalVirtualMemory:2,047MB3.2FreeVirtualMemory:852MB4.SystemDiskFreeSize:231,704MB5.processMemoryUseSize:157MB6.详细内容:PrivateMemorySize64:249MB==>PagedMemorySize64:249MB==>PeakPagedMemorySize64:299MB==>WorkingSet64:157MB==>PeakWorkingSet64:208MB==>PeakVirtualMemorySize64:1,370MB==>VirtualMemorySize64:1,195MB==>
解决方案十一:
上面是报错的时候,使用状况收集的。TotalPhysicalMemory:3,772MB(总物理内存)1.2FreePhysicalMemory:1,247MB==》还剩的不少5.processMemoryUseSize:157MB==》我的程序占用内存量系统是64位Windows7professional,分页文件是默认的,大概7G多。。
解决方案十二:
引用7楼wjkaola123的回复:

建议从程序本身找找问题,一般这种问题在程序长时间运行,申请的内存得不到释放导致的。特别是关于数据库连接,流对象的使用等,用完后没能及时释放,导致内存不断攀升。

同意
解决方案十三:
及时释放不用的资源
解决方案十四:
引用12楼xuzuning的回复:

及时释放不用的资源

5.processMemoryUseSize:157MB不用的资源内存释放做处理了。但关于虚拟内存是好像c#是无法控制。有没有别的方法解决问题呢?请大家帮忙。。
解决方案十五:
按照我的理解虚拟内存就是所谓的交换区,操作系统会将物理内存中暂时不活动的内存块转移到硬盘上的交换区,以腾出更多的物理内存供活动进程使用通常程序在申请内存时,都是申请一段连续的内存空间。如果物理内存不够时,就可能被申请到了交换区(虚拟内存)所以,你可以考虑适当减少单个容器的数据规模,而代之以多个容器
解决方案:
引用14楼xuzuning的回复:

按照我的理解虚拟内存就是所谓的交换区,操作系统会将物理内存中暂时不活动的内存块转移到硬盘上的交换区,以腾出更多的物理内存供活动进程使用通常程序在申请内存时,都是申请一段连续的内存空间。如果物理内存不够时,就可能被申请到了交换区(虚拟内存)所以,你可以考虑适当减少单个容器的数据规模,而代之以多个容器

PeakVirtualMemorySize64:1,370MB==>系统分配该应用程序1,370MB???VirtualMemorySize64:1,195MB==>现在正使用的虚拟内存。比如这个时候因发生别的事件,500Mb数据移到虚拟内存时,1195+500>1370虚拟内存最大值(PeakVirtualMemorySize64),我理解的对吗?
解决方案:
是这个意思不过当发生交换时,最小的计量单位是页操作系统不同,内存页的大小也不同
解决方案:
别人在程序中为了释放内存,使用以上方法来释放内存。物理内存到控制的很好,但是虚拟内存一直攀升,也不会释放不用的cache...有没有办法,把PeakVirtualMemorySize64最大值提高,或者释放虚拟内存中不用的数据?
解决方案:
再帮帮忙吧
解决方案:
程序应该写得有问题,导致内存无法释放使用工具软件,查看是什么对象占用内存

时间: 2024-10-28 09:18:26

c# 虚拟内存 使用 过大?的相关文章

C#程序物理内存不大而虚拟内存用过大的问题

问题描述 C#程序物理内存不大而虚拟内存用过大的问题 通讯SOCKET,虚拟内存增加很快?怎么解决,数据加载在内存,但是数据不多,谢谢. 解决方案 是不是有内存泄漏.或者资源泄漏 解决方案二: 可能,但是问题找不出来出在哪, 解决方案三: 希望有这方面经验,给点建议?

系统提示虚拟内存不足

每次电脑使用一段时间之后, 桌面右下角的工具栏就会提示虚拟内存不足, 如果你系统是2G以上内存, 还会提示的话, 很可能是虚拟内存设置方法不正确.今天就教大家如何设置虚拟内存. 方法/步骤 在 计算机 鼠标右键 选择 属性 在计算机属性菜单, 选择高级系统设置. 性能选项,可以调整视觉效果.处理器计划和虚拟内存大小的设置. 我们点击设置. 在性能选项, 选择 高级.虚拟内存选项点击更改. 去掉"自动管理所有驱动器的分页文件大小"前面的对号,取消选中. 点击你需要设置的盘符,选择自定义大

电脑虚拟内存小怎么办?

设置虚拟内存 虚拟内存的概念是相对于物理内存而言的,当系统的物理内存空间入不敷出时,操作系统便会在硬盘上开辟一块磁盘空间当做内存使用,这部分硬盘空间就叫虚拟内存.Windows 98中采用Win386.swp文件的形式,而Windows 2000/XP则采用页面文件pagefile.sys的形式来管理虚拟内存. 一.大小情况 1.一般情况 一般情况下,建议让Windows来自动分配管理虚拟内存,它能根据实际内存的使用情况,动态调整虚拟内存的大小. 2.关于最小值 Windows建议页面文件的最小

关于虚拟内存的应用模式

  虚拟内存的概念是相对于物理内存而言的,当系统的物理内存空间入不敷出时,操作系统便会在硬盘上开辟一块磁盘空间当做内存使用,这部分硬盘空间就叫虚拟内存.Windows 98中采用Win386.swp文件的形式,而Windows 2000/XP则采用页面文件pagefile.sys的形式来管理虚拟内存. 一.大小情况 1.一般情况 一般情况下,建议让Windows来自动分配管理虚拟内存,它能根据实际内存的使用情况,动态调整虚拟内存的大小. 2.关于最小值 Windows建议页面文件的最小值应该为当

如何增加电脑的虚拟内存?

  设置虚拟内存 虚拟内存的概念是相对于物理内存而言的,当系统的物理内存空间入不敷出时,操作系统便会在硬盘上开辟一块磁盘空间当做内存使用, 这部分硬盘空间就叫虚拟内存.Windows 98中采用Win386.swp文件的形式,而Windows 2000/XP则采用页面文件pagefile.sys的形式来管 理虚拟内存. 一.大小情况 1.一般情况 一般情况下,建议让Windows来自动分配管理虚拟内存,它能根据实际内存的使用情况,动态调整虚拟内存的大小. 2.关于最小值 Windows建议页面文

运行内存和虚拟内存有什么区别呀?

  虚拟内存是为了解决内存容量不足而产生的,就是把不是经常用的程序放在在硬盘上一个固定的区域里面,当用到这部分程序的时候再从硬盘传给内存. 运行内存就是指的机箱内的内存条. 二者的区别是虚拟内存的容量大,而运行内存的速度快.

谈谈虚拟内存如何设置为好

  一.为减少磁盘碎片设置虚拟内存 安装Windows的时候,默认的虚拟内存是放在安装系统所在的分区的,大小一般是物理内存的1.5倍.由于Windows还会把临时文件(TEMP目录及*.TMP).IE缓冲区都放在该分区,这些文件都会频繁地更新写入硬盘,再加上虚拟内存的话,产生的文件碎片数量就比较多了.笔者认为,与其用整理软件耗费大量时间整理碎片,倒不如为这些文件专门划分一个分区,让它们随时有连续的空间可利用,速度也会更快.建议分出一个2G左右的分区,把TEMP.IE缓冲区的路径全部直向该分区,虚

虚拟内存设置的原则及技巧

  一.虚拟内存怎么设置最好: 1.一般情况下 建议让windows来自动分配管理虚拟内存,它能根据实际内存的使用情况,动态调整虚拟内存的大小. 2.关于最小值 windows建议页面文件的最小值应该为当前系统物理内存容量再加上12mb,而对于物理内存容量小于256mb的用户,则建议将页面文件的最小值设得更大些: ①使用128mb或者更少内存的用户,建议将当前物理内存容量的1.75倍设置为页面文件的最小值. ②内存大小在128mb到256mb之间的用户,建议将当前物理内存容量的1.5倍设置为页面

设置虚拟内存的方法

  虚拟内存最好不要与系统设在同一分区内,内存是随着使用而动态地变化,C盘就容易产生磁盘碎片,影响系统运行速度,所以,最好将虚拟内存设置在其它分区中磁盘剩余空间较大而又不常用的盘中,如D.F,这样可以避免系统在此分区内进行频繁的读写操作而影响系统速度.在一台电脑中,虚拟内存在一个分区中设置就够用了,不必在各个分区中设置虚拟内存. 设置虚拟内存的方法是:在桌面右键我的电脑 - 属性 - 高级 - 性能 设置 - 高级 - 虚拟内存 更改 - 点选C盘 - 单选"无分页文件(N)"-&qu