• 关于垃圾回收,我来解释下为什么LocalConnection可以实现垃圾回收


    我来解释下为什么LocalConnection可以实现垃圾回收.
    其实LocalConnection与垃圾回收是没有直接关系的.
    这个做法的原理在于垃圾回收的时间尽管不确定,但是,只要程序抛出错误,就会运行一次垃圾回收器.这里使用LocalConnection两次connect同一个连接,第二次将发生运行时错误(#1034,LocalConnection已经连接上).于是就报错了.垃圾回收器自动运行.
    至于为什么网上流传的版本都是LocalConnection,我个人觉得,可能是因为这个LocalConnection在AS3的应用中相对比较少出现,而且跟其他代码相比,这个运行时错误不容易与其他代码发生冲突.

    //

    我的方法在我的程序上测试过,在相同的内存申请中,第一次调用gc()后,内存好像没有被释放,但第二次进行相同的内存申请却并没有增加内存的用量,CPU使用也相对稳定,可以这样说,系统的确是回收了垃圾,但没有直接把回收的内存交还给操作系统,所以在第二次申请中内存用量没有上升。
    而在没有用gc()的情况下,每调用一次都会增加内存用量,CPU占有也随之提高。

    //

    LocalConnection以及System.totalMemory这样的东西。
    都是封装在底层的实现中。

    如果是windows有相应的C++底层实现,官方没有公开这个资料自然也没有说明,不然就不叫Hack
    但是我觉得这是一个不稳定的做法,因为针对不同的系统,相对的底层实现也不同。

  • 相关阅读:
    第一章计算机系统知识
    Java面试宝典摘抄
    Java的容器类Collection和Map
    log4j.properties 详解与配置步骤(转)
    JSTL中的TLD配置和使用。
    (原创)mybatis学习四,利用mybatis自动创建代码
    C#常用方法
    Spring 3.x jar 包详解 与 依赖关系
    spring mvc JSON实现方式
    Structs2配置文件相关说明
  • 原文地址:https://www.cnblogs.com/jiahuafu/p/1596404.html
Copyright © 2020-2023  润新知