Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Какой обьект скушает больше памяти? (https://javascript.ru/forum/misc/34558-kakojj-obekt-skushaet-bolshe-pamyati.html)

viktorina 10.01.2013 01:17

Какой обьект скушает больше памяти?
 
Такой вариант.
function obj1(){
this.func = function(){
alert("Обьект1");
}
}

Или такой вариант, когда обьект использует внешние функции.

function al(msg){
alert(msg)
}

function obj2(){
this.func=function(){
al("Обьект2");
}
}


new obj1() > new obj2()      ???????????


Пока писал понял:))
Но всё же. Как правильно создавать методы обьекта? Они должны быть маленькими и использовать внешние функции, или можно писать функции прямо в обьекте. При создании обьекта память будет расходоваться сильнее?
Как-то тупо описал......ммммм может кто поймёт, что я имею ввиду.

godofjavascript 10.01.2013 02:56

возьми да проверь что кушает больше памяти, в чем проблема?
не умеешь проверять? нажми в хроме F12 там разберешься если знаешь английский. если не знаешь, то завязывай с программированием.

подскажу лишь вкладку Profiles

devote 10.01.2013 03:00

Цитата:

Сообщение от godofjavascript
нажми в хроме F12

для хрома может быть одно, для других браузеров другое.. Что больше кушает тут сложно сказать. А вот что быстрее работает, то obj1 однозначно будет быстрее

godofjavascript 10.01.2013 09:23

Цитата:

Сообщение от devote
для хрома может быть одно, для других браузеров другое..

докажи

devote 10.01.2013 10:11

Цитата:

Сообщение от godofjavascript
докажи

а оно мне надо? я к тому что интерпретаторы в разных браузерах, разные. И сложно понять кто из них и как это обрабатывает.

godofjavascript 10.01.2013 10:12

нет не сложно, если в одном меньше весит то предполагается что и в другом меньше весит.

devote 10.01.2013 10:16

godofjavascript,
с тобой я уж тем более спорить не собираюсь, считай как считаешь

viktorina 10.01.2013 11:26

Ой. Наверное не понятно я написал. Представьте себе, что функция не алерт, а сложные вычисления на 50 строк. И таких методов в обьекте 100. Делать ли вычисления в методах или через методы просто запускать внешние функции .
Как лучше. Недавно я плагин для оперы написал на фреймворке своём, так на одном сайте за 3 мин было сьедено оперой 8гб оперативы.... Получается увесистые обьекты, если вычисления проводить в них, а не через ссылки на функции?

dmitriymar 10.01.2013 11:30

Цитата:

Сообщение от viktorina
. Недавно я плагин для оперы написал на фреймворке своём, так на одном сайте за 3 мин было сьедено оперой 8гб оперативы....

Может у тебя утечка памяти? это к "весу" никакого отношения не имеет

Dmitriyff 10.01.2013 12:00

на мой взгляд у вас оба варианта некорректны,

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

var SuperFunc = function() {
  // n-строк
};

var Obj = function() {

  this.SuperFunc = SuperFunc;
};

var o1 = new Obj();
o1.SuperFunc();

var o2 = new Obj();
o2.SuperFunc();


var Obj = function() {

  this.SuperFunc = function() {
  // n-строк
};
};

var o1 = new Obj();
o1.SuperFunc();

var o2 = new Obj();
o2.SuperFunc();


первый вариант съест меньше памяти


Часовой пояс GMT +3, время: 06:01.