Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.01.2013, 01:17
Аватар для viktorina
Профессор
Отправить личное сообщение для viktorina Посмотреть профиль Найти все сообщения от viktorina
 
Регистрация: 04.01.2013
Сообщений: 173

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

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

function al(msg){
alert(msg)
}

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


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


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

Последний раз редактировалось viktorina, 10.01.2013 в 01:50.
Ответить с цитированием
  #2 (permalink)  
Старый 10.01.2013, 02:56
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

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

подскажу лишь вкладку Profiles
Ответить с цитированием
  #3 (permalink)  
Старый 10.01.2013, 03:00
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от godofjavascript
нажми в хроме F12
для хрома может быть одно, для других браузеров другое.. Что больше кушает тут сложно сказать. А вот что быстрее работает, то obj1 однозначно будет быстрее
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #4 (permalink)  
Старый 10.01.2013, 09:23
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

Сообщение от devote
для хрома может быть одно, для других браузеров другое..
докажи
Ответить с цитированием
  #5 (permalink)  
Старый 10.01.2013, 10:11
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от godofjavascript
докажи
а оно мне надо? я к тому что интерпретаторы в разных браузерах, разные. И сложно понять кто из них и как это обрабатывает.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #6 (permalink)  
Старый 10.01.2013, 10:12
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

нет не сложно, если в одном меньше весит то предполагается что и в другом меньше весит.
Ответить с цитированием
  #7 (permalink)  
Старый 10.01.2013, 10:16
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

godofjavascript,
с тобой я уж тем более спорить не собираюсь, считай как считаешь
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #8 (permalink)  
Старый 10.01.2013, 11:26
Аватар для viktorina
Профессор
Отправить личное сообщение для viktorina Посмотреть профиль Найти все сообщения от viktorina
 
Регистрация: 04.01.2013
Сообщений: 173

Ой. Наверное не понятно я написал. Представьте себе, что функция не алерт, а сложные вычисления на 50 строк. И таких методов в обьекте 100. Делать ли вычисления в методах или через методы просто запускать внешние функции .
Как лучше. Недавно я плагин для оперы написал на фреймворке своём, так на одном сайте за 3 мин было сьедено оперой 8гб оперативы.... Получается увесистые обьекты, если вычисления проводить в них, а не через ссылки на функции?
Ответить с цитированием
  #9 (permalink)  
Старый 10.01.2013, 11:30
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от viktorina
. Недавно я плагин для оперы написал на фреймворке своём, так на одном сайте за 3 мин было сьедено оперой 8гб оперативы....
Может у тебя утечка памяти? это к "весу" никакого отношения не имеет
Ответить с цитированием
  #10 (permalink)  
Старый 10.01.2013, 12:00
Профессор
Отправить личное сообщение для Dmitriyff Посмотреть профиль Найти все сообщения от Dmitriyff
 
Регистрация: 22.07.2012
Сообщений: 164

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

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

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();


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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли узнать какой объем памяти занимает переменная? jsuse Общие вопросы Javascript 23 05.04.2016 08:56
Утечки памяти: как сделать ? Draeden Events/DOM/Window 10 30.08.2009 18:16