Jak*_*son 21 javascript memory memory-management object
假设您有以下复杂对象:
var object1 = .... // (something complexed)
Run Code Online (Sandbox Code Playgroud)
这会占用xJS应用程序中的内存量.现在假设您有一些其他参考对象object1:
var otherObject = { something: true, value: 'yes', object: object1 };
var anotherObject = { color: '#FFF', object: object1 };
Run Code Online (Sandbox Code Playgroud)
我object1最初占用的内存量是否增加了两倍?或者引用object1不添加内存开销?
我不确定如何自己测试以确定答案.(如果你可以告诉我如何指向一个有助于对此进行基准测试的工具,那么可以获得奖励积分).
看看这个问题.数字,字符串等总是按值调用,但是通过共享调用对象; 也就是说,它们是按值调用的,但该值是对象的引用.
换句话说,如果修改指针的属性,则修改与对象相同的内存池.但是如果重新指定指针,它不会影响原始对象.
这意味着,在您的示例中,您没有占用内存量的三倍object1,但额外的指针object1将占用一些内存空间.究竟有多大空间?这取决于Javascript引擎的精确实现,但它总是远小于对象的大小.
就基准测试而言,请查看Mozilla的JS引擎文档SpiderMonkey.那里有很多好的工具....