社区
C#
帖子详情
关于一个C#内存释放的问题
webnumen
2011-10-13 10:22:29
比如我在一段死循环里面写这样的一段代码:
while (true)
{
Byte[] buffer = new Byte[2048];
}
请问在这个while循环里面,buffer会不断创建,是不是会造成内存不断膨胀?如果我希望创建数组后,在while循环内再释放他,该怎么办?
...全文
361
13
打赏
收藏
关于一个C#内存释放的问题
比如我在一段死循环里面写这样的一段代码: while (true) { Byte[] buffer = new Byte[2048]; } 请问在这个while循环里面,buffer会不断创建,是不是会造成内存不断膨胀?如果我希望创建数组后,在while循环内再释放他,该怎么办?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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),这些对象就会从拖管堆中移去
[14本经典Android开发教程]-8-Linux内核阅读心得体会
3 锁的
释放
57 4 与用户态的自旋锁的比较 57 5 总结 58 读核感悟
内存
管理 free命令详解 58 读核感悟 文件读写 2 6 9内核中的AIO 59 1 AIO概述 59 2 内核态AIO的使用 61 读核感悟 文件读写 内核态AIO相关结构体 61 1...
c#
内存
释放
试验
c#
内存
释放
试验
C#
高级程序设计
为什么要学习
C#
?
C#
是微软的**语言,拥有接近20年的历史和广泛的应用。目前国内对
C#
的书籍和视频相对较少,但
C#
和.NET的发展前程是十分光明的,这体现在微软公司本身强劲的实力,
C#
的开源,.NET Core社区的蓬勃发展,以及.NET开发岗位需求的不断增加。
C#
用途广泛,容易上手。可以说,如果你熟悉
C#
语言,你将不愁找不到好的工作。 本课程分为四部分(三层架构、设计模式、多线程、网络编程达人),详细的讲述了一名
C#
中、高级程序员需要学习的各项知识,其中宿舍管理系统实战是重中之重。课程主要特点: 1. 紧跟微软
C#
发展,使用
C#
语言和开发环境版本2. 结合应用案例,力求做到深入浅出,明白易懂3. 重要概念附有英文翻译4. 独家附赠一个面试经验分享,希望每位学生都可以从中受益,在面试中脱颖而出5.含宿舍管理系统的讲解希望本套课程在你学习
C#
的过程中,可以对你有所帮助。
C#
内存
释放
(垃圾回收)
C#
内存
释放
(垃圾回收)
问题
背景---- 今天写了个很小的程序,程序的功能仅仅是截图,但是如果长时间开启并截图的时候,程序会变的很大,从刚开始的运行在任务管理器中只有十几K大小,运行一段时间后在任务管理器中...
C#
内存
泄露与资源
释放
经验总结
经验总结:
C#
并不是有了垃圾回收机制,你就可以对
内存
管理放任不管,其实在稍不注意的时候,可能就造成了
内存
泄露,或者...这个
问题
经常碰到,所以把它放第一位,看代码: string txt = string.Empty; for (int i
C#
110,580
社区成员
642,559
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章