什么是语义记忆泄漏?


文艺青年3
2025-03-16 12:19:52 (15天前)


我理解内存泄漏的定义,但找不到任何涉及语义或语义内存泄漏和内存泄漏的差异。

内存泄漏示例:

include< …


3 条回复
  1. 0# 蜡笔小辛 | 2019-08-31 10-32



    定义(语义垃圾)
    程序永远不会再使用的变量,但是
    仍然保留对它的引用,称为语义垃圾。



    换句话说,想象一下在主程序中分配一个数组,并且仅在前几行中使用它,并在完成后不释放它。基本上,语义内存泄漏和内存泄漏之间的主要区别在于,在内存泄漏中,您没有引用不同意数组,但是在语义泄漏中,您实际上已经引用了它,尽管您不再使用它。


  2. 1# 林老爷的日常 | 2019-08-31 10-32




    定义
    </强>

    (语义垃圾)



    程序永远不会再使用的变量,但是
    仍然保留对它的引用,称为语义垃圾。




    1. class Huge {
      Huge() { // Constructor:
      // Allocates lots of data and stores
      // it in the newly created object
      }
      }

    2. void f() {
      Huge semanticGarbage = new Huge();
      heavy.computation(new Indeed(100));
      System.exit(1);
      }

    3. </code>


    所有复杂的GC算法都无法对抗语义垃圾。





    参考:


    Technion CS 234319:编程语言课程
    </强>



    (演讲)

    第5章
    </强>
    存储

    5.5

    自动内存管理 - 语义内存泄漏



登录 后才能参与评论