关于一个C#内存释放的问题

webnumen 2011-10-13 10:22:29
比如我在一段死循环里面写这样的一段代码:
while (true)
{
Byte[] buffer = new Byte[2048];
}

请问在这个while循环里面,buffer会不断创建,是不是会造成内存不断膨胀?如果我希望创建数组后,在while循环内再释放他,该怎么办?
...全文
361 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞天凤凰601 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yuwenge 的回复:]
Byte[] buffer;
while (true)
{
buffer = new Byte[2048];
}

就没卵事了。
[/Quote]

我们需要文明,,,,,,
classbob 2011-10-14
  • 打赏
  • 举报
回复
ls上的喝多了吧。。。
卧_槽 2011-10-14
  • 打赏
  • 举报
回复

Byte[] buffer;
while (true)
{
buffer = new Byte[2048];
}

就没卵事了。
不老神仙 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 webnumen 的回复:]
比如我在一段死循环里面写这样的一段代码:
while (true)
{
Byte[] buffer = new Byte[2048];
}

请问在这个while循环里面,buffer会不断创建,是不是会造成内存不断膨胀?如果我希望创建数组后,在while循环内再释放他,该怎么办?
[/Quote]

此说法不是很准确 垃圾回收器清理内存是要有条件的 在你下次循环的时候不保证你上次的已经清理调了
boboge2008 2011-10-14
  • 打赏
  • 举报
回复
学习中!!!!!!
枪牌 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 vrhero 的回复:]
非托管资源不用管,有GC...GC会在空闲时或内存紧张时自动清理内存,释放非托管资源...但如果你做得太过分系统来不及处理那就是你的问题...
[/Quote]

写错了吧,托管资源不用管
shihui881210 2011-10-14
  • 打赏
  • 举报
回复
这种占内存的,最好不要定义为临时的
Bullatus 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 vrhero 的回复:]

非托管资源不用管,有GC...GC会在空闲时或内存紧张时自动清理内存,释放非托管资源...但如果你做得太过分系统来不及处理那就是你的问题...
[/Quote]
同意,如果想手动释放可以尝试如下代码
buffer = null;
GC.Collect();
Indifferent_Wind 2011-10-14
  • 打赏
  • 举报
回复
VS是很强大的工具。

[Quote=引用 2 楼 vrhero 的回复:]

非托管资源不用管,有GC...GC会在空闲时或内存紧张时自动清理内存,释放非托管资源...但如果你做得太过分系统来不及处理那就是你的问题...
[/Quote]
vrhero 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sj97a007 的回复:]
引用 2 楼 vrhero 的回复:
非托管资源不用管,有GC...GC会在空闲时或内存紧张时自动清理内存,释放非托管资源...但如果你做得太过分系统来不及处理那就是你的问题...


写错了吧,托管资源不用管
[/Quote]
是的,输入错误...
classbob 2011-10-13
  • 打赏
  • 举报
回复
sorry,默认是256k
vrhero 2011-10-13
  • 打赏
  • 举报
回复
非托管资源不用管,有GC...GC会在空闲时或内存紧张时自动清理内存,释放非托管资源...但如果你做得太过分系统来不及处理那就是你的问题...
classbob 2011-10-13
  • 打赏
  • 举报
回复
.NET下你基本不需要考虑内存释放的问题,GC会自动回收那些不用的对象
以你的buffer为例,到下次循环时,上次循环的buffer就已经没有在用了,在GC触发回收操作时(一般是generation 0满的时候,generation0一般是512K),这些对象就会从拖管堆中移去

110,580

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧