比较值得参考的文档:http://www.jb51.net/article/37214.htm

.NET 的内存管理过程:

  托管堆假设内存无限大,线性连续分配内存;

  实际内存不够使用时,遍历托管堆对资源,对过期资源进行标记;

  移除被标记的资源后对托管堆进行压缩(重新从头开始排列),调整堆指针到空闲内存的开头;

另:

  垃圾回收主要且微软推荐让CLR自己进行,不建议用 GC.Collect 指令;

  要自己负责非托管资源的回收:

  • Finalize:在 Finalize 内对非托管资源进行回收,以确保 CLR 在内存回收时调用 Finalize 回收非托管资源;
  • Dispose:提供一个显式的接口,使用Dispose的主要动机在于与 using 的配合,编译器会自动为 using 生成 try.finally 块,编译器会为 using 中的变量转型成 IDispose 并在 finally 调用 Dispose;

  

  

  

最新文章

  1. C语言 · 未名湖边的烦恼
  2. jq attr()改变checkbox的checked无效!!!!
  3. Cinder 调试 - 无法挂载到虚拟机
  4. Java之POJO
  5. LA 3401 - Colored Cubes
  6. Visual Studio 2012 使用免费的Team Foundation Service
  7. 酷狗、QQ、天天动听——手机音乐播放器竞品对比
  8. Android Studio创建/打开项目时一直处于Building“project name”Gradle project info的解决办法
  9. Python模块探秘之EasyGui
  10. NOIP-数字反转
  11. Essential Phone刷机教程
  12. Java数据解析---PULL
  13. Web应用程序使用说明
  14. 无返回值的异步方法能否不用await
  15. dom元素操作(动态事件绑定)
  16. 利用ST MCU内部基准参考电压监测电源电压及其它
  17. jQuery获取动态产生的html内标签或元素
  18. 关键词抽取:pagerank,textrank
  19. POJ 2301
  20. C语言-apache mod(模块开发)-采用VS2017开发实战(windows篇)

热门文章

  1. [C#] 常用工具类——文件操作类
  2. FontCombobox 和FontSizeCombobox
  3. [Webpack 2] Tree shaking with Webpack 2
  4. [TypeScript] Using Typings and Loading From node_modules
  5. LabVIEW设计模式系列——移位寄存器
  6. (转载)github简单使用教程
  7. android开发之自定义AutoCompleteTextView
  8. Android开发之TextView的下划线添加
  9. 可变字典 NSMutableDictionary
  10. java: Eclipse jsp tomcat 环境搭建(完整)