社区
C#
帖子详情
C#中程序员可以不用考虑内存拉圾的处理了吗?
yanfeng
2005-10-31 10:09:36
刚刚从c++转移过来,看到了C#中有个GC(拉圾回收器)可以自动回收拉圾的,好像这个东西自己有很好的回收拉圾内存的策略,不用自己再在析构函数中显示的写回收拉圾的code了,虽然系统也提供了System.GC.Collect()方法来显示要回收内存,但是微软又不提倡用它,说要影响GC的性能。
这个意思是不是C#程序员再也不用考虑内存拉圾问题了?(当然非内存的资源还是要显示的释放:)
...全文
389
21
打赏
收藏
C#中程序员可以不用考虑内存拉圾的处理了吗?
刚刚从c++转移过来,看到了C#中有个GC(拉圾回收器)可以自动回收拉圾的,好像这个东西自己有很好的回收拉圾内存的策略,不用自己再在析构函数中显示的写回收拉圾的code了,虽然系统也提供了System.GC.Collect()方法来显示要回收内存,但是微软又不提倡用它,说要影响GC的性能。 这个意思是不是C#程序员再也不用考虑内存拉圾问题了?(当然非内存的资源还是要显示的释放:)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangjidong
2005-11-04
打赏
举报
回复
.net说实话俺也搞了好长时间了,现在还是不明不白,俺只是觉得占用资源比较大(想当然)的时候才收工释放。
俺的观点是“虽然办公室里有大姐定时打扫垃圾,如果碰上垃圾太多的时候,也要主动叫她去打扫”。
vovo2000
2005-11-04
打赏
举报
回复
最好不要自己手动释放,手动释放并不比gc性能高。
jeremychen001181
2005-11-04
打赏
举报
回复
前面new了一个没有实现IDispose的对象,要如何在后面手动释放内存?
nate_liu
2005-11-03
打赏
举报
回复
在非拖管代碼中﹐應該在調用后顯式回收好一點的(個人認為)。
比如說你在C#中調用Excel之類的COM,在調用完后﹐應該Null然后GC.Collect()好一點的。否則Excel的進程是要等到窗體關閉后才能關閉甚至更長時間才能關閉的。
lyb_abiandbel
2005-11-03
打赏
举报
回复
我手动家gc.collect()和dispose(),
但是,内存都不会少,
即使用了上面的方法,还是要等gc来回收?
这个地方就是不明不白,用好还是不用好?
用多线程可以解决吗?
Ivony
2005-11-03
打赏
举报
回复
实现了IDispose的对象是必须调用Dispose方法,托管资源可以不管,非托管资源一定要写Dispose和析构函数释放,否则永远不会释放
jijl2001
2005-11-03
打赏
举报
回复
有时候要考虑一下加快垃圾回收
lovebanyi
2005-11-03
打赏
举报
回复
不要考虑.. 不过回收的时候发现程序会停一会儿
fsdy2000
2005-11-03
打赏
举报
回复
内存回收有很多种机制,一种语言只是选择其中一种或几种。不可避免都不可能是完美的。
netdreamingboy
2005-11-02
打赏
举报
回复
to: superfishmanweb
我现在也遇上你同样的问题.请问为啥要"在多处加了GC"?这样做有啥好处,怎么加?每个线程执行完都加呢?环是定时调用呢?望指教!
jamesfay
2005-11-02
打赏
举报
回复
特殊情况下需要考虑,在资源占用很大的时候也会考虑WeakReference什么的
曲滨_銘龘鶽
2005-11-01
打赏
举报
回复
有 Dispose 的类尽量调用 Dispose 就好了
反正 ms 这里根本就是不明不白
我们的服务器(2003)经常出现占用好多内存的情况,就算定时调用 Collect 也不太解决问题,后来多加了几个处理进程好多了
afdfgg
2005-11-01
打赏
举报
回复
非托管资源,继承IDisposable接口,显示调用Dispose方法释放资源,效率应该比较高
superfishmanweb
2005-11-01
打赏
举报
回复
GC好有必要,我写了个多线程的东东,内存种是隔一段时间就爆长,后来在多处加了GC就使内存维持在一个稳定的水平了,不过cpu就出现了波浪型的变化.但总算解决了问题.另外,有很多对象如果是可以设置null的或可以dispose的就尽量把他们设置了,null的会被gc收回而dispose就不用说了.
fsdy2000
2005-10-31
打赏
举报
回复
建议你不用,.net有专门的线程在不断的检测和做回收工作。当然你可以分析一下其使用的回收机制,看是否满足你的要求。再补充一些方法也可以。另外.net底层上是否不会发生内存泄漏还不好说。连JAVA有回收机制,其JVM都有这方面漏洞。
SqlDataAdapter
2005-10-31
打赏
举报
回复
一般大对象用完后就手工释放,小对象就让CLR自动处理吧。
royosun
2005-10-31
打赏
举报
回复
考虑了不是更好??~
DrSmart
2005-10-31
打赏
举报
回复
不过不一样的,你们要知道用结构分配的内存是占用栈内存,而用类分配的是堆内存,搞服务器的人写就知道还是要手动的释放一定的
Yuna_2z
2005-10-31
打赏
举报
回复
差不多了~只要有了CLR,利用GC回收,MS今天在.net frameword programming又看了一边
jxufewbt
2005-10-31
打赏
举报
回复
基本上是的,因为CLR会隔一段时间检测一下内存,如果发现某些资源没在使用状态,就调用GC来释放,Java也是这种机制。
加载更多回复(1)
C#
程序员
0成本入门机器学习宝典
人工时代来临,
程序员
又到转型时间。Python是机器学习和深度...SciSharp 是一个基于.NET Core 调用现有Python机器学习库和深度学习库的开源社区,让.NET
程序员
直接通过
C#
调用TensorFlow/ Keras完成机器学习/深度学习。
c#
基础(一)之
内存
管理
c#
编程的一个优点是
程序员
不需要关心具体的
内存
管理,尤其是垃圾收集器会
处理
所有的
内存
清理工作。虽然不必手工管理
内存
,但如果要编写高质量的代码,还是要理解后台发生的事情,理解
c#
的
内存
管理。本文主要介绍给...
JVM学习笔记之-
拉圾
回收概述,垃圾回收相关算法
拉圾
回收概述 什么是垃圾 垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用
内存
动态分配和垃圾收集技术的Lisp语言诞生。 关于垃圾收集有三个经典问题: 哪些
内存
需要回收? 什么时候回收? 如何回收? ...
垃圾回收
为了让
程序员
更专注于代码的实现,而
不用
过多的
考虑
内存
释放的问题,所以,在Java语 言
中
,有了自动的垃圾回收机制,也就是我们熟悉的GC。 有了垃圾回收机制后,
程序员
只需要关心
内存
的申请即可,
内存
的释放由系统...
java list clear 垃圾回收_java垃圾回收机制
程序的运行必然需要申请
内存
资源,无效的对象资源如果不及时
处理
就会一直占有
内存
资源,最终将导数
内存
溢出,所以
内存
资源的管是非常重要了。1.1、C/C++语言的垃圾回收在C/C++语言
中
,没有自动垃圾回收机制,是通过...
C#
110,566
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章