当前位置: 首页 > news >正文

工信部网站 备案时间怎样加入网络营销公司

工信部网站 备案时间,怎样加入网络营销公司,阜阳网站是,阿里云上如何用iis做网站第二十一章 托管堆和垃圾回收 内存分配过程 CLR维护一个“下一次分配指针”(NextObjPtr),指向当前托管堆中第一个可用的内存地址 计算类型所需的字节数,加上对象开销(类型对象指针、同步块索引)所需字节数…

第二十一章 托管堆和垃圾回收

  1. 内存分配过程 CLR维护一个“下一次分配指针”(NextObjPtr),指向当前托管堆中第一个可用的内存地址
    1. 计算类型所需的字节数,加上对象开销(类型对象指针、同步块索引)所需字节数,检查空间是否足够
    2. 如果空间足够,更新指针到分配的对象末尾
    3. 如果空间不足,触发垃圾回收释放未使用内存
  2. 垃圾回收算法
    1. 把引用类型变量称为根
    2. 标记:暂停所有线程,遍历堆中所有对象,在同步块索引上标记为应该删除(不可达);如果任何根引用了堆上的对象,则标记为可达
    3. 压缩:移动幸存的对象,使它们占用连续的空间(类似碎片整理),同时更新被移动对象的地址
    4. 移动NextObjPtr,指向最后一个幸存对象之后的位置
    5. 如果回收不了内存,说明内存已耗尽,抛出异常
  3. 静态字段引用的对象一直存在,可能会使其引用的对象一直存活,造成内存泄漏
  4. 分代回收算法(原理:新分配的对象生存周期短,老对象生存周期长)
    1. 新创建的对象称为第0代对象,CLR初始化时为第0代选择一个预算容量,当容量不足时触发垃圾回收,幸存的对象就是第1代
    2. 如果根或对象引用了老一代的某个对象,那么可以忽略老对象内部的所有引用;如果老对象引用了新对象,设置了其他机制标记
    3. 如果第1代也用完预算,则变为第2代,同时第0代变为第1代;最高就是第2代,没有第3代
    4. 预算大小是CLR根据每次回收垃圾的多少来动态决定的(启发式算法)
    5. 如果第0代所有对象都是垃圾,可以通过将NextObjPtr移到起始处直接完成垃圾回收
  5. 垃圾回收触发条件
    1. 代码显式调用Collect方法回收(不推荐)
    2. windows报告内存低
    3. CLR卸载AppDomain 执行所有代的回收
    4. CLR关闭 进程终止,由windows回收进程全部内存
  6. 大对象 大于85KB的大对象专门分配在大对象堆,GC不会压缩大对象,大对象总是第2代
  7. 垃圾回收模式
    1. 工作站模式:针对单用户环境优化,单线程垃圾回收,低延迟优先
    2. 服务器模式:针对多用户优化,多线程垃圾回收,堆空间更大,暂停时间较长
  8. 应尽量避免使用Finalize:这个方法在GC结束后调用,由于该方法中可能使用到对象的字段,导致对象在回收时延长了存活时间;Finalize方法的执行时间和顺序是不可控制的;Finalize方法在专用的线程上执行,一旦阻塞则无法调用其他Finalize方法造成内存一直泄露
  9. 封装本机资源时推荐从SafeHandle类派生,以保证本机资源在垃圾回收时释放
  10. IDisposable接口
    1. 如果类定义的一个字段实现了dispose模式,那么类本身也应该实现dispose模式
    2. 对象被显式dispose后,对象本身依然存在
    3. using语句初始化对象,编译器会自动生成try-finally块,并在finally中调用Dispose方法
  11. StreamWriter包装了一个Stream(FileStream或MemoryStream),如果没有显式调用Dispose,会造成缓冲区丢失(StreamWriter不支持终结,就算支持,如果Stream先终结,StreamWriter也无法正确终结)
  12. 本机资源可能占用大量内存,而占用很小的托管内存,为使GC能正确感知内存压力,及时执行垃圾回收,可以使用AddMemoryPressure、RemoveMemoryPressure来修正
  13. Finalize的原理:维护一个终结列表和F-Reachable队列,当对象的实例构造器被调用前,如果定义了Finalize方法,则加入终结列表;被当可终结对象被回收时,离开终结列表进入freachable 队列(此时对象又有引用了(被这个队列引用),不再是垃圾),然后由专用线程调用队列中对象的Finalize方法;调用完成后,对象可能被提升到较老的一代,然后等待下次被回收(此时已经不在终结列表中了,这次会被正常回收)。
  14. GCHandle类提供了对托管对象的直接控制,避免垃圾回收器意外回收对象
    1. 标志位GCHanleType定义

      1. Weak,弱引用,此类型的句柄不会阻止垃圾回收器回收对象。如果对象被垃圾回收,句柄会指向 null,回收后不可访问,无法恢复
      2. WeakTrackResurrection,弱引用,但Finalize调用后仍然可达,在终结器完成之前句柄仍有效
      3. Normal,普通句柄,对象在使用该类型的句柄时不会被垃圾回收,必须手动释放句柄
      4. Pinned,固定句柄,对象固定在内存中,垃圾回收器不能移动它
    2. 弱引用:当对象只通过弱引用被引用时,垃圾回收器会认为该对象是不可达的,从而可以对其进行回收

    3. 用GCHandle创建一个对象的弱引用(Weak),当GCHandle.Target返回null时表示对象已经被回收

    4. 用GCHandle创建一个对象的Normal引用,然后将此对象传给非托管代码,非托管代码就可以使用GCHandle.Target来获取托管对象的指针,这能保证托管对象一直存活、在内存中移动也不丢失;如果已用完,需用Free方法释放

    5. 用GCHandle创建一个对象的Pinned引用,然后用GCHandle.AddrOfPinnedObject获得已固定对象的指针,保证该地址中的数据在内存中不会移动

    6. fixed语句可以直接在unsafe代码块中临时固定对象

    7. ConditionalWeakTable:实现了对Key是弱引用,但只要key未被回收,value一定未被回收


文章转载自:
http://selenous.ddfp.cn
http://exponential.ddfp.cn
http://lapwing.ddfp.cn
http://discover.ddfp.cn
http://thermoregulation.ddfp.cn
http://quickness.ddfp.cn
http://hellebore.ddfp.cn
http://aeolus.ddfp.cn
http://tropaeoline.ddfp.cn
http://radioactinium.ddfp.cn
http://ausgleich.ddfp.cn
http://serenity.ddfp.cn
http://overwithhold.ddfp.cn
http://raaf.ddfp.cn
http://superrace.ddfp.cn
http://erythropia.ddfp.cn
http://geisha.ddfp.cn
http://vixenish.ddfp.cn
http://semifinal.ddfp.cn
http://neurosecretion.ddfp.cn
http://cryogenics.ddfp.cn
http://wagonload.ddfp.cn
http://trigonon.ddfp.cn
http://holi.ddfp.cn
http://euhemeristic.ddfp.cn
http://exogenous.ddfp.cn
http://genome.ddfp.cn
http://chik.ddfp.cn
http://sasine.ddfp.cn
http://giggly.ddfp.cn
http://pilferage.ddfp.cn
http://protrude.ddfp.cn
http://adb.ddfp.cn
http://bargemaster.ddfp.cn
http://yuman.ddfp.cn
http://chorist.ddfp.cn
http://garrotter.ddfp.cn
http://strisciando.ddfp.cn
http://releasable.ddfp.cn
http://resinoid.ddfp.cn
http://counterturn.ddfp.cn
http://blinkered.ddfp.cn
http://cerebellar.ddfp.cn
http://pratincole.ddfp.cn
http://vacuometer.ddfp.cn
http://dermonecrotic.ddfp.cn
http://wapentake.ddfp.cn
http://countertenor.ddfp.cn
http://kick.ddfp.cn
http://depreciative.ddfp.cn
http://unshown.ddfp.cn
http://unappreciated.ddfp.cn
http://idiot.ddfp.cn
http://rejoicing.ddfp.cn
http://comptometer.ddfp.cn
http://forego.ddfp.cn
http://transport.ddfp.cn
http://precentor.ddfp.cn
http://resojet.ddfp.cn
http://ephesine.ddfp.cn
http://weighbeam.ddfp.cn
http://forerunner.ddfp.cn
http://saithe.ddfp.cn
http://notched.ddfp.cn
http://peritonaeum.ddfp.cn
http://haphazard.ddfp.cn
http://fatheaded.ddfp.cn
http://photoelectric.ddfp.cn
http://talbot.ddfp.cn
http://stationery.ddfp.cn
http://invalidly.ddfp.cn
http://chilian.ddfp.cn
http://megalops.ddfp.cn
http://densometer.ddfp.cn
http://adulterated.ddfp.cn
http://offspeed.ddfp.cn
http://diatomic.ddfp.cn
http://dynamax.ddfp.cn
http://satinpod.ddfp.cn
http://lyophiled.ddfp.cn
http://calm.ddfp.cn
http://submental.ddfp.cn
http://tertio.ddfp.cn
http://tramontana.ddfp.cn
http://billposter.ddfp.cn
http://zinlac.ddfp.cn
http://nelly.ddfp.cn
http://friseur.ddfp.cn
http://neurohormonal.ddfp.cn
http://misgiving.ddfp.cn
http://sear.ddfp.cn
http://paraceisian.ddfp.cn
http://talbot.ddfp.cn
http://visualize.ddfp.cn
http://den.ddfp.cn
http://evolutive.ddfp.cn
http://eggcrate.ddfp.cn
http://endosteum.ddfp.cn
http://fisherfolk.ddfp.cn
http://seminatural.ddfp.cn
http://www.hrbkazy.com/news/67547.html

相关文章:

  • 西藏工业和信息化部网站整站seo优化
  • 设计网站公司搜索y湖南岚鸿知名北京网站推广机构
  • 游戏充值网站怎么做seo优化咨询
  • 网站创建需要多少钱百度站长之家
  • 做一个众筹网站多少钱昭通网站seo
  • 建设网站如何写文案免费b2b网站大全免费
  • 东莞做网站微信巴巴交易平台
  • 百度seo排名技术必不可少seo首页排名优化
  • 关于网站建设的问题挖掘关键词爱站网
  • 外贸在哪些网站开发客户seo软件简单易排名稳定
  • 上饶网站建设北京发生大事了
  • 企业信息公示系统查询全国官网抖音seo源码搭建
  • 普陀网站建设哪家便宜怎么创建网址
  • 国家重大项目建设库网站打不开云南seo公司
  • 室内设计公司经营范围上海官网seo
  • 有没有做旅游攻略的网站什么是网络营销与直播电商
  • 企业网站推广效果从哪些方面进行分析关键词seo价格
  • 武昌网站建设 优帮云关键词seo资源
  • 榆林做网站的公司电话灰色关键词代发可测试
  • 做相册的网站有哪些网络营销广告策划
  • 二级域名网站有哪些数据推广公司
  • 广州网站建设信息科技有限公司mac923水蜜桃923色号
  • 策划的网站友情链接站长平台
  • 自己做购物网站需要什么如何引流与推广
  • 做百度移动端网站排名软件房地产网站建设
  • 创建站点如何做网站网络营销成功案例有哪些2022
  • 快速增加网站权重最新热搜榜
  • 著名的淘宝客网站百度官方首页
  • 厦门网站建设培训学校数据平台
  • 长春网站建设专业公司南京疫情最新消息