Javascript内存分配

时间:2012-08-19 18:40:31

标签: javascript memory allocation

  

可能重复:
  How is the memory allocation done for variables in scripting languages?

在javascript中,因为它是一种松散类型的语言,当我编写代码时:

var foo;

在此步骤之后,分配了多少块内存。我给它分配任何东西,当我输入

var foo = 10;

var foo = "this is random"

在这两种情况下分配了多少字节的内存?

1 个答案:

答案 0 :(得分:1)

我不确定具体是什么,具体取决于实现,但这就是我猜的。

简单地执行var foo;不会创建任何新对象。但是,foo可能需要添加到声明变量的字典中,在这种情况下,字符串foo的空间和可能的元数据被分配,假设它没有被实现。

当你执行var foo = 10;var foo = "this is random"时,它会分别创建字符串或整数变量,这通常会占用内存。然而,小的整数和常数字符串几乎肯定是固定的。此外,JIT可能会优先考虑普通机器整数的数字引用,在这种情况下它根本不需要任何额外的内存。

无论如何,很难说具有不同实现的高级语言的性能,特别是涉及JIT时。