Расход памяти объектами JavaScript

230
22 июня 2017, 07:12

Есть след код, меня интересует, происходит ли в этом случае экономия памяти?

var Person = {
  getName: function(){
    return this.name;
  },
  bigMethod: function(){
    // here some large code 
  }
};
var createPerson = function(obj){
  var person = {};      
  person.getName = function(){
    return Person.getName.call(obj); 
  };
  person.bigMethod =function(){
    return Person.bigMethod.call(obj);
  };
  return person;
}
var persons = [];
for (var i =0; i < 1000; i++){
  persons.push(createPerson({name:'Gregory'}));
}

или же в принципе можно делать так:

var createPerson = function(obj){
    var person = {};      
    person.getName = function(){
      return obj.name; 
    };
    person.bigMethod = function(){
      // here some large code 
    };
    return person;
}
var persons = [];
for (var i =0; i < 1000; i++){
  persons.push(createPerson({name:'Gregory'}));
}

в первом случае я выделил реализацию некого гипотетического метода с длинным кодом в отдельный объект Person и вызываю его из createPerson. а во втором я просто создаю объект с нужными методами и возращаю объект.

Answer 1

так проверил с помощью профайлера Google Chrome результаты след и в 1-м и во 2-м случае размер памяти примерно одинаковый у меня это ~25 Mb на 100,000 объектов, а вот в случае прототипа значительно меншье ~6 Mb.

Думаю в моем случае, выноса реализации в отдельный метод, оптимизатор вызвращает обратно его в тело )) таким образом оптимизируя код, надо попробовать написать реальный большой метод по объему, и его тестировать.

READ ALSO
Disallowed_useragent when google+ auth

Disallowed_useragent when google+ auth

I use Google+ Login in my Wep App (Google Sign In)In browser like Chrome or Safari working fine (opens popup in new tab with chose account (enter login, passwd), then popup closed and auth successfull

432
Проверка одинаковых значений в массиве

Проверка одинаковых значений в массиве

Приветствую! Большая просьба помочь, пытаюсь сделать судоку(похожее на это maworldcom

332
отрицательная степень рекурсия js [требует правки]

отрицательная степень рекурсия js [требует правки]

как вычислить отрицательную степень рекурсией в js?

609