内存管理-基于javascript实现报警器提示音效果

时间:2024-07-29 11:57:21
【文件属性】:

文件名称:内存管理-基于javascript实现报警器提示音效果

文件大小:56.6MB

文件格式:PDF

更新时间:2024-07-29 11:57:21

VB2010 高级编程 文字版

4.5 内存管理 本节介绍托管代码的底层元素之一一一内存管理。 .NET应用程序被称为托管程序的 4个原因缸 子,内存的释放是由系统臼动完成的。 CLR 的内存管理克服了 COM 内存程:理的缺陷. 开发人员习 惯于仅在抽象层面上考虑内存管理。其基本规则是每一个创建的对象和分配的内存都应当被释放(销 毁). CLR 引入了垃圾回收器(GC),简化了这个过程。以前,如果组件不能合理地释放其对象引用 !oc分配的内存就会导致Web 服务器崩溃. 尽管如此, GC 的使用面临新的问题一一何时需要显式释放对象,是否需要释放对象?手动编 写代码以分配和同收内存和系统资源时,要遵循两个基本规则。第一是释放所有的共享资源,比如 文件句柄和数在引车遥撞。 这些都要显式声明,我们在后面讨论。手动管理内存的第二个原则是,部 主E告诉系统应用程序何时不再使用某块内存。 Vìsual Basic COM 开发人员已经习惯于将变量设置为 Nothing,以显式地释放对象引用。但在.NET 中,虽然可以将变量手动设置为 Nothing,显示指定释 放对象,们这并没有实际释放资源。 .NET 使用垃圾回收器自动回收己分配的内存, 因此不需要显式进行内存管理。但是由于这是 ­ 个臼动系统, 我们无法确定资源何时'释放。在一个方法中使用的资源有可能在方法结束后仍在内存 中。更重耍的是, 垃圾罔收机制有可能会在执行方法代码的过程中用收对象,不过好在系统确保了 问收只在后面的代码不再引用对象的情况下才会进行。 例如,把对象设置为 Notbing 可以宦接把对象清山内存。因此在方法的最后把变最设为 Nothing , 系统就不会再使用垃极间收机制来回收X'J象。但这种做法不值得推荐,毕竟,如果仅仅是为了表明 开发人员的意图, 使用注释就足够了。 下面儿节将介绍传统内存管理方法的缺陷以及基于 COM 的内存管理存在的问题, 详细讨论士在 圾阳收器的工作原理以及 GC 是如何解决这些问题的。 我们将重点介绍如何与垃圾回收器交互, 以 及在.NET 中为什么推荐使用 Using 命令和终止方法。 4.5.1 传统的垃圾回收机制 非托管的(COMNisual Basic 6)运行库环境的内存管理功能十分简单,它只是自动释放应用汗如子 不再引用的对象。 一旦某个对象上的全部引用都被释放,运行席将自动从内存中释放郎才象。 例如, 下面的这段 Visual Basic 6 代码使用 Scripting.FileSystem 对象给日志文件舔加一项: ' 只equires a reference to Microsoft Scripting Runtime (scrrun .dll) 223


网友评论