会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
ygc
[置顶]
C# 内存管理优化畅想----前言
摘要: C#语法简洁、优雅,类库丰富,是我最喜爱的计算机语言,没有“之一”。但是,经过深入学习后发现,C#的内存管理,也就是通常所说的垃圾回收(GC)机制,虽然跟其他支持GC的语言相比,已经很优秀了,但与手动管理内存的语言,如C++等相比,仍有差距,比如内存回收不够及时或频繁回收导致卡顿等。 我一直在...
阅读全文
posted @ 2015-10-08 17:09 ygc
阅读(591)
评论(0)
推荐(1)
2015年10月16日
C# 内存管理优化实践
摘要: 内存优化畅想系列文章已经结束了,很多读者读完之后可能觉得“然并卵”,毕竟都是给微软提的建议而已,现在都没有实现。那么为了优化内存,有没有什么我们现在就能用的技巧呢?我的答案是:有。网上关于.net内存优化的文章有许多,我不想一一转载,这里只介绍两个我自己想到的方法,如有雷同,纯属巧合。当然,我只...
阅读全文
posted @ 2015-10-16 17:30 ygc
阅读(1160)
评论(0)
推荐(1)
C# 内存管理优化畅想(三)---- 其他方法&结语
摘要: 前两篇文章提出的优化方法,都是不需要修改源代码的,而是在CLR或JIT层面进行自动优化的。但本文中提出的优化方法则需要引入新的语法,开发者只有在源代码中使用了这些新语法,才会获得优化。1. 允许对象“嵌入式”组合:说白了,就是允许一个对象包含其他对象(包含的是对象本身,而非其引用),这样就把多个对象...
阅读全文
posted @ 2015-10-16 16:39 ygc
阅读(924)
评论(0)
推荐(2)
2015年10月9日
C# 内存管理优化畅想(二)---- 巧用堆栈
摘要: 这个优化方法比较易懂,就是对于仅在方法内部用到的对象,不再分配在堆上,而是直接在栈上分配,方法结束后立即回收,这将大大减轻GC的压力。 其实,这个优化方法就是java里的逃逸分析,不知为何.net里没有引入。英文讨论贴:https://github.com/dotnet/coreclr/iss...
阅读全文
posted @ 2015-10-09 18:03 ygc
阅读(751)
评论(1)
推荐(1)
2015年10月8日
C# 内存管理优化畅想(一)---- 大对象堆(LOH)的压缩
摘要: 我们都知道,.net的GC是不会压缩大对象堆的,因为其时间开销不可接受,但这是以大对象堆产生大块碎片为代价的,如果以后要分配的大对象比最大的碎片还大,那么即使它比所有碎片的总大小要小,也是无法在不扩展大对象堆的前提下分配成功的,此时有可能引发内存不足的异常。 我想到一个方案,可以让大对象堆也能...
阅读全文
posted @ 2015-10-08 17:23 ygc
阅读(2268)
评论(0)
推荐(1)
导航
博客园
首页
新随笔
联系
订阅
管理
公告