Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объекты в памяти, Вопрос про оптимизацию кода 
:(
    Опции темы
Faydaen
Дата 14.1.2013, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 23.1.2008

Репутация: нет
Всего: нет



Здравствуйте! У меня вот такой вопрос:
Допустим есть массив, в которым находится очень много разных данных
Код

var myArr = [
    {
    var1:'очень длинная стока',
    var2:'ещё одна очень длинная стока',
    bigObj: { /* объект который содержит под 50 разный свойств */},
    n:32 // значение к которому нужно будет обращаться чаще чем к остальным методам массива
    },
    /* далее идут штук 40 таких вот "тяжелых" объектов в каждом из которых есть свойство n */
    
]

и вот нужно узнать, например, минимальное значение одного из свойств этого объекта,
если написать 
Код

for(var i = 0; i<myArr.length; i++){
    if(myArr[i]['n']<min){
        min = myArr[i]['n'];
    }
    // дальше какой то код
}

то будет ли каждую итерацию загружаться в память другие объекты из этого массива (к которым мы не обращаемся)? Или не будут?
если будут то я создам отдельный массив в котором будут только значения n чтобы не загружать память ненужными объектами
Заранее спасибо за помощь.
PM MAIL   Вверх
Aliance
Дата 14.1.2013, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



А до создания цикла, где находятся объекты из массива? Разве они уже не в памяти, т.к. страница-то загружена.
PM MAIL WWW ICQ Skype   Вверх
CruorVult
Дата 14.1.2013, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



Faydaen, Вы имеете ввиду копироваться на каждой итерации?
При присваивании нового значения переменной min все не ссылочные данные будут скопированы в память и храниться там до следующей сборки мусора.

При сравнении myArr[i]['n']<min копироваться ничего не будет, т.к. идет сравнение объектов находящихся в памяти

Это сообщение отредактировал(а) CruorVult - 14.1.2013, 19:23
PM MAIL Skype   Вверх
Faydaen
Дата 14.1.2013, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 23.1.2008

Репутация: нет
Всего: нет



Понятно, иными словами массив стоит загрузить один раз, и не волноватся о том сколько раз к нему обращатся. Спасибо. Извенюсь если вопрос показался слишком ламерским 
PM MAIL   Вверх
CruorVult
Дата 14.1.2013, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



Да. При обращении ничего не копируется, при присваивании - копируются не ссылочные данные. Все просто smile 
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0768 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.