代码之家  ›  专栏  ›  技术社区  ›  Real Red.

如何在脚本语言中为变量分配内存?

  •  6
  • Real Red.  · 技术社区  · 17 年前

    var x = 5;
    

    稍后我可以做

    x = 'a';
    

    然后

    x = "hello";
    

    2 回复  |  直到 17 年前
        1
  •  3
  •   unwind    17 年前

    Python使用了一种称为 reference counting ,这基本上在值中添加了一个计数器。每次创建对值的引用时,计数器都会递增。当对该值的引用丢失时(例如,当您为“x”分配新值时),该值将递减。当计数器达到零时,这意味着不存在对该值的引用,并且可以释放该值。这是一个简化的解释,但这至少是基本的。

        2
  •  0
  •   Joel Hoffman    17 年前

    好, 那些 变量是对编译时分配的不可变字符串的引用。

    当然,这取决于VM,但一般来说,我认为,大多数基于C的脚本语言都会分配一大块内存,根据需要对其进行扩展,并在其中进行自己的分配,很少会给O/S任何回报。特别是在词法范围的语言中,几乎所有的变量都是在这个块内动态分配的,而不是在类似于C堆栈的任何东西上,它们通过引用计数或垃圾收集器释放。