码迷,mamicode.com
首页 > 其他好文 > 详细

字符串的内存优化(游览器内置)

时间:2014-08-07 12:17:29      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:for   ar   代码   new   js   不同的   c#   字符串   

代码1 :
    var array = [];        
        for (var i = 0 ; i < 100000; i++) {        
            array.push({ name: "keatkeata" });
        }
代码2 :
 var array = [];        
        for (var i = 0 ; i < 100000; i++) {        
            var obj = new Object();
            var str = new String("keatkeata");
            obj.name = str;
            array.push(obj);
            obj = null;
        }

代码1和代码2出来的结果是一样的。
但是代码1用的内存是 6.xM 而代码2用了 10M
为什么呢?
其实这和C#原理差不多。
str 也是对象也可以用指针表示
所以呢 代码1其实是new String("keatkeat") 了一次而已,之后的都引用同一个对象
而代码2这是 new String 了很多次,所以内存就消耗很多了!
JSON.parse 就是用了第2种方法,所以你会发现本来没消耗那么多的,结果JSON.parse 后变多了! 
当然如果你的字符串都是不同的,游览器也就没法优化了,要注意了哦!

字符串的内存优化(游览器内置),布布扣,bubuko.com

字符串的内存优化(游览器内置)

标签:for   ar   代码   new   js   不同的   c#   字符串   

原文地址:http://www.cnblogs.com/keatkeat/p/3896528.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!