现在有一个项目 设置的是每隔一分钟就手动执行一次GC垃圾回收(放在子线程中执行),我觉得有点时间间隔短了,如果有必要的话,隔多长时间 手动执行一次GC垃圾回收合适呢????
另外 我想问问 GC执行垃圾回收,会额外的消耗(耗费)资源(没存)吗???
求解答,希望大家各抒己见,不予吝啬.....
谢谢 大家的回复和建议. 内存资源
另外 我想问问 GC执行垃圾回收,会额外的消耗(耗费)资源(没存)吗???
求解答,希望大家各抒己见,不予吝啬.....
谢谢 大家的回复和建议. 内存资源
更不应该重复调用。
如果你注意垃圾回收
在写代码的时候去注意及时Dispose对象,释放不要的资源
这比去统一某个时间去集中调GC回收更好
可是 现在 就我们这个组在做 NET,别的组 是永别的语言写程序的.......现在 我 就是 抽空就优化下代码,把冗余的代码 可以提取为字段的局部变量 整理出来,我觉得不能 所有的都交给 编译器去优化,虽然都是 大牛们的设计结果, 不过 我觉得 设计的时候 肯定 是选择的 折中 的 优化方式了
另外确定Dispose都及时调了吗?
实在不行就要看代码了,这绘图具体是用了哪些东西。
{
SqlClient sc = new SqlClient();//需要释放的全局变量 public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
if (sc != null)
sc.Dispose();//释放
}
~className()
{
Dispose(false);
}}也可以使用Using
GDI+ ,不停的定义局部变量Pen Brush,还有 自己定义的类,我现在 修改的是 需要 定义局部变量的 再用外后都 = null了,不需要定义为局部变量的提取成 字段了,不过对于 自定义的类,没有 自己 实现 Dispose,不知道这样 有没有效果
USing,我倒是忘了这个了......
是的,现在 我抽空再给 以前 封装好的 类 增加 Dispose方法呢,在 使用结束后 都显示的调用Dispose