机器视觉

自由、创新、技术、经典

2010年1月13日 #

DotNet下GC的命门之一 --- 巨集合操作

摘要: 如果算法结果或中间结果产生大量小对象的集合, 在GC中则会导致性能问题, 原因如下:1、小对象(<80k)分配时在Generation 0上,随着数量的增加, 会触发大量的垃圾收集2、垃圾收集时, GC会将他们搬移到Generation 1 heap上,这会带来性能损失, 相当于memcpy的成本3、修改集合内部每个对象指针,指向新地址,这个性能损失很严重,如果是LinkedList或Tree类型, 成本更高4、当Generation 1的heap不足时,GC会将他们从Gen1 heap搬移到Gen2 heap,上述2,3步再重复一遍5、当你用多线程提速时,GC的收集行为会锁住所有线程, 阅读全文

posted @ 2010-01-13 04:43 塞伦盖蒂之鹰 阅读(417) 评论(0) 推荐(0)

导航