none
以前的VB 6软件,是如何释放内存的? RRS feed

  • 问题

  •  以前的VB 6软件,是如何释放内存的?不是VB.NET, 是以前的VB6. 它的内存是谁放出来的?
    不受2008的广告诱惑, 本人坚持使用VS 2005和SQL Server 2000.
    2009年2月6日 15:05

答案

  • php的内核不是com内核  所以不一定是怎样....  我也只接触过m$技术  php不熟悉  嘿嘿
    Guitar Hero IV -- Singing Rock & Roll.
    • 已标记为答案 dvdvip 2009年2月8日 2:31
    2009年2月7日 13:21
  • 没有用内存管理器的时候需要自己编写释放内存的代码。用了内存管理器就不用自己写了。
    .Net的CLR有一个内建的内存管理器。内存管理算法都很成熟,可以自己实现的。


    MSMVP VC++
    2009年2月6日 17:36
    版主
  • 以前vb6 采用  com 的计数器回收机制
    一个对象  内部有一个被引用的counter  多一个引用+1    被set nothing一次-1
    当减为0 的时候(比如强制所有引用变成0,或者临时对象的方法栈结束)的时候 自动调用自爆流程

    这样做的代价是巨大的  
    首先  计数器多线程会带来线程同步的成本
    其次  大多数方法临时变量 分散的回收成本  总和  远远大于批量回收
    Guitar Hero IV -- Singing Rock & Roll.
    • 已标记为答案 dvdvip 2009年2月7日 9:32
    2009年2月7日 8:21

全部回复

  • 没有用内存管理器的时候需要自己编写释放内存的代码。用了内存管理器就不用自己写了。
    .Net的CLR有一个内建的内存管理器。内存管理算法都很成熟,可以自己实现的。


    MSMVP VC++
    2009年2月6日 17:36
    版主
  • 我以前用VB的时候,从来没有考虑过内存问题。好像也不用自己写吧?是不是它自己会自动释放,就像放屁一样?
    不受2008的广告诱惑, 本人坚持使用VS 2005和SQL Server 2000.
    2009年2月7日 5:11
  • 以前vb6 采用  com 的计数器回收机制
    一个对象  内部有一个被引用的counter  多一个引用+1    被set nothing一次-1
    当减为0 的时候(比如强制所有引用变成0,或者临时对象的方法栈结束)的时候 自动调用自爆流程

    这样做的代价是巨大的  
    首先  计数器多线程会带来线程同步的成本
    其次  大多数方法临时变量 分散的回收成本  总和  远远大于批量回收
    Guitar Hero IV -- Singing Rock & Roll.
    • 已标记为答案 dvdvip 2009年2月7日 9:32
    2009年2月7日 8:21
  •  还想多问一下,PHP又是如何释放内存的?
    不受2008的广告诱惑, 本人坚持使用VS 2005和SQL Server 2000.
    2009年2月7日 12:58
  • php的内核不是com内核  所以不一定是怎样....  我也只接触过m$技术  php不熟悉  嘿嘿
    Guitar Hero IV -- Singing Rock & Roll.
    • 已标记为答案 dvdvip 2009年2月8日 2:31
    2009年2月7日 13:21