Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.08.2016, 17:37
te1 te1 вне форума
Новичок на форуме
Отправить личное сообщение для te1 Посмотреть профиль Найти все сообщения от te1
 
Регистрация: 14.02.2012
Сообщений: 5

Память javascript
Возник странный вопрос.

Например есть у меня проект с использованием require.js, и я в этом проекте постоянно подгружаю по запросам новый javascript, и новые шаблоны. Они сохраняются куда то в память, что будет , когда я подгружу слишком много шаблонов/javascriptов? Есть какой-то лимит же?
Ответить с цитированием
  #2 (permalink)  
Старый 30.08.2016, 19:14
Аспирант
Отправить личное сообщение для scrollquest Посмотреть профиль Найти все сообщения от scrollquest
 
Регистрация: 21.08.2016
Сообщений: 77

все зависит от того, какой код. Чтобы GC нормально освобождал память, надо следить, чтобы не было ненужных ссылок на объекты. Если на объект несколько ссылок он не удалится. Особенно опасны в этом смысле замыкания
o = {}
foo = function(o){ return function(){}}(o)
delete o // пока существует foo, о висит в памяти


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

А четкого лимита никакого нет, кроме системного, все зависит от конкретной машины. Просто будет все тормозить, и зависать, если не упадет

Последний раз редактировалось scrollquest, 30.08.2016 в 21:14.
Ответить с цитированием
  #3 (permalink)  
Старый 31.08.2016, 06:00
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от te1
что будет , когда я подгружу слишком много шаблонов
Увеличится размер швопа. И так пока винт не кончится. А они сейчас большие.
Ответить с цитированием
  #4 (permalink)  
Старый 31.08.2016, 18:01
te1 te1 вне форума
Новичок на форуме
Отправить личное сообщение для te1 Посмотреть профиль Найти все сообщения от te1
 
Регистрация: 14.02.2012
Сообщений: 5

Сообщение от scrollquest Посмотреть сообщение
все зависит от того, какой код. Чтобы GC нормально освобождал память, надо следить, чтобы не было ненужных ссылок на объекты. Если на объект несколько ссылок он не удалится. Особенно опасны в этом смысле замыкания
o = {}
foo = function(o){ return function(){}}(o)
delete o // пока существует foo, о висит в памяти


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

А четкого лимита никакого нет, кроме системного, все зависит от конкретной машины. Просто будет все тормозить, и зависать, если не упадет

Это все понятно.
Я имел несколько другое ввиду.
Вот нашел что-то похожее на мой вопрос,
http://stackoverflow.com/questions/3...ed-to-conserve
Ответить с цитированием
  #5 (permalink)  
Старый 31.08.2016, 18:02
te1 te1 вне форума
Новичок на форуме
Отправить личное сообщение для te1 Посмотреть профиль Найти все сообщения от te1
 
Регистрация: 14.02.2012
Сообщений: 5

Сообщение от warren buffet Посмотреть сообщение
Увеличится размер швопа. И так пока винт не кончится. А они сейчас большие.
Благодарю. Я так понял что в принципе можно не беспокоиться об очистке шаблонов, js , (например в том же require.js, любом другом amd). Если их количество "адекватное". Имеется ввиду Rich Client Application.

Последний раз редактировалось te1, 31.08.2016 в 18:11.
Ответить с цитированием
  #6 (permalink)  
Старый 01.09.2016, 06:41
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Тебя не мемори должна волновать, а сама жаба скрипучая. Браузер может зохавать таблицу с картинками на несколько тыщ строк и даже десятков тыщ и тащемта будет крутиться, а вот жирные и тупые скрипты даже при небольшом их числе, запросто умудряются завесить к чертям что угодно.
Ответить с цитированием
  #7 (permalink)  
Старый 01.09.2016, 10:52
te1 te1 вне форума
Новичок на форуме
Отправить личное сообщение для te1 Посмотреть профиль Найти все сообщения от te1
 
Регистрация: 14.02.2012
Сообщений: 5

Сообщение от warren buffet Посмотреть сообщение
Тебя не мемори должна волновать, а сама жаба скрипучая. Браузер может зохавать таблицу с картинками на несколько тыщ строк и даже десятков тыщ и тащемта будет крутиться, а вот жирные и тупые скрипты даже при небольшом их числе, запросто умудряются завесить к чертям что угодно.
не первый день на javascript пишу , с этим как-нибудь разребусь, как и с утечками памяти (замыкания, неправильное использование jquery, утечки в js фреймворках, всё это знакомо)

Интересн как раз стал вариант, когда я пишу на фреймворке (в конкретном случае - knockout.js + использую компоненты и require.js для их подгрузки, компоненты - это пары из шаблона + соответствующий шаблону js код).
И процесс работы скрипта такой, что постоянно по требованию подгружаются эти компоненты, соответственно и возник вопрос, что будет, если приложение станет очень большим, я же постоянно буду ,пускай и не сразу, но постепенно подгружать компоненты.

Последний раз редактировалось te1, 01.09.2016 в 11:00.
Ответить с цитированием
  #8 (permalink)  
Старый 01.09.2016, 13:14
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

te1,
require.js вставляет скрипты динамически, при этом скрипты сохраняются на клиенте
при последующем запросе скрипт берется уже с кеша клиента, не дергая ваш сервер
Ответить с цитированием
  #9 (permalink)  
Старый 01.09.2016, 13:28
Аспирант
Отправить личное сообщение для scrollquest Посмотреть профиль Найти все сообщения от scrollquest
 
Регистрация: 21.08.2016
Сообщений: 77

Poznakomlus,
А какое это имеет отношение к вопросу?
Ответить с цитированием
  #10 (permalink)  
Старый 01.09.2016, 13:41
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от te1
Например есть у меня проект с использованием require.js, и я в этом проекте постоянно подгружаю по запросам новый javascript, и новые шаблоны. Они сохраняются куда то в память
Сообщение от Poznakomlus
при этом скрипты сохраняются на клиенте
Сообщение от scrollquest
А какое это имеет отношение к вопросу?
Читайте внимательнее
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чем отличается Память от Память Javascript? nice_try Opera, Safari и др. 0 11.12.2013 14:19
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34