问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

GC.Collect()内存回收问题

发布网友 发布时间:2022-04-23 00:41

我来回答

3个回答

热心网友 时间:2023-10-09 11:22

对内存管理要求比较高的的项目,为什么要用.net做?
为什么不考虑用C/C++呢

另外一个角度,你对内存进行如此频繁的申请和释放,为什么不考虑同一块内存复用?

//----------补充的回答-------------------

我不知道你的应用是什么,不太清楚你的程序的具体运行过程。

1、并发占用内存的机会有多大?就是说,你一次要申请很大的内存,这个操作,是有时间先后顺序的吗,还是有可能是并发申请的?

如果同一时刻,只有一块大内存正在被使用,那么,你为什么不申请一块足够大的内存,来重复使用呢?

如果同一时刻,有多块大内存正在被使用,那么,这个并发数量,有没有一定的上限呢?如果有,也可以考虑做一个大内存块池,比如一块最大需要100M,同时并发数量为10。你完全可以设计一个最大允许申请10个100M的内存块池,而不是让GC或者Windows的内存管理器来如此频繁的申请和释放。

2、如果每次申请的内存大小差异很大,那估计你要添加一些稍微复杂的算法来管理你的这个申请和释放问题。有一些算法,是专门用来管理程序的内存使用的,可以在网上找一资料参考一下。

3、如果有精力,也可以研究一下GC是如何工作的,用工具看看它的实现源码,看看有没有能够利用的地方。

//-------------再次补充--------------------------

就算是大小由第三方数据来决定,也不能没有一个*。
系统资源毕竟是有限的,在有限的资源上面,做无限的事,那肯定是要想办法才行。

1、你这数据究竟是从哪里来的?网络传送过来的么?
2、由于实在太大的数据处理,而内存又不够大的话,那没办法,我们不能无*的扩充内存,那么,能考虑使用分块处理么?

热心网友 时间:2023-10-09 11:23

程序员根本不应该随意干涉GC的行为,否则99%一定是大幅度影响性能
除非你真的知道自己在干什么

热心网友 时间:2023-10-09 11:23

不要直接调用GC.Collect()。 强制回收所有代资源很有可能造成性能下降。
考虑对消耗内存大的对象,在使用完毕后手动释放。(调用对象的dispose方法)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
草青青,青青草,草上接谢珍珠宝,怕日晒怕风摇,摇看珍珠得起早 谜底是... 一加9R要不要升级ColorOS 13正式版 一加9pro怎么coloros12一加9pro升级coloros12的方法 coloros12支持哪些一加机型?coloros12支持一加机型介绍 一加9pro如何coloros12?一加9pro升级coloros12的方法 一加9pro升级coloros12拍照改善吗 我是一个高中生,职教的,我们班上有5个女生,我喜欢有一个,但追她又有... 自动挡d挡旁边的 -是什么意思? 自动挡位上的加减是什么意思? 宣传这个职位是干什么的 Java的内存自动回收真的是优点吗 Java程序员是否应该了解内存回收机制? java的内存回收机制是什么呢?程序员能自己手动释放内存么?能指定内存释放时间么? java关于内存回收的说明 java什么情况会进行内存回收 运行完C语言程序需要把内存回收? java如何进行内存自动释放,垃圾回收 回收内存什么意思 内存释放就是内存回收吗? Java语言的内存回收机制是什么 java的内存回收既可以由系统完成也可以由程序员完成吗? java堆内存怎样回收 Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象 c语言内存怎么回收和代码是什么? 苹果7p能用iPad充电器实现快充么 内存回收程序允许程序员直接释放内存 小米max3充电多久 小米max可以用快充3.0吗 小米Max手机无法开机和充电要怎么办? 小米max首次充电充多久 清理后台程序以回收内存,是否清理?是啥意思 Delphi New Dispose FreeMem 如何回收管理内存 java的垃圾回收机制是否允许程序员指定回收并立即回收不用的内存吗?指定回收就马上能回收吗 - 信息提示 如何恢复uc浏览器删除的缓存视频? 我在UC浏览器下载的视频让我不小心误删了,怎么样可以找回,感谢,拜 在uc浏览器上缓存的视频怎么恢复? 我一不小心,从UC上误删除手机里的视频怎么办 UC浏览器删除了历史记录怎么才能找回呢 在uc浏览器删除了手机拍摄的视频源文件可以恢复吗? 在uc浏览器下载视频后被删除掉,现在想看,还找的回来吗? UC浏览器里下载管理VideoData目录下的文件删除了之后下载的视频就不能看了,这还能找回文件 ? 在uc浏览器内,删除本地视频怎么办。之前删除只是删除记录,现在可以直接删除手机内存的东西,恢复? 手机uc浏览器的缓存视频怎么恢复??有什么软件吗 在健身房如何训练可以提高弹跳能力? 怎么在健身房里练弹跳, 健身房怎么练弹跳和腿部力量 面包松软有弹性秘诀 在健身房里怎么练弹跳? 有哪些技巧可以让面包更松软?