The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Как освободить память в JavaScript"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"Как освободить память в JavaScript"  
Сообщение от chainik (??) on 26-Июн-06, 11:11 
Допустим, я создал очень длинный объект
textnodeText = document.createTextNode('Мой текст');
Как мне освободить занимаемую им память (на самом деле заставить браузер освободить занимаемую этим объектом память), когда по моему замыслу javascript-программа сочтет этот объект более ненужным?
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как освободить память в JavaScript"  
Сообщение от XAnder (ok) on 26-Июн-06, 12:00 
>Допустим, я создал очень длинный объект
>textnodeText = document.createTextNode('Мой текст');
>Как мне освободить занимаемую им память (на самом деле заставить браузер освободить
>занимаемую этим объектом память), когда по моему замыслу javascript-программа сочтет этот
>объект более ненужным?

Движок JavaScript сочтет этот объект ненужным тогда, когда на него не останется ни одной ссылки. Это называется сбором мусора. В принципе, можно не беспокоится о высвобождении памяти - эта задача решается автоматически. Если вдруг понадобится форсировать события, нужно просто установить все указатели на этот объект в null.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Как освободить память в JavaScript"  
Сообщение от chainik (??) on 26-Июн-06, 12:15 
>>Допустим, я создал очень длинный объект
>>textnodeText = document.createTextNode('Мой текст');
>>Как мне освободить занимаемую им память (на самом деле заставить браузер освободить
>>занимаемую этим объектом память), когда по моему замыслу javascript-программа сочтет этот
>>объект более ненужным?
>
>Движок JavaScript сочтет этот объект ненужным тогда, когда на него не останется
>ни одной ссылки. Это называется сбором мусора. В принципе, можно не
>беспокоится о высвобождении памяти - эта задача решается автоматически. Если вдруг
>понадобится форсировать события, нужно просто установить все указатели на этот объект
>в null.

Прошу прощения за возможное непонимание (привык к c, c++). Указатель в моем примере это textnodeText?

Правильно ли будет освободить память записав
textnodeText = null;
?

Просто я еще не совсем осознал, что такое указатель в java.
Например, если бы в C была объявлена переменная X,
то указатель на нее можно было бы получить как
<type of X> *pX = &X;
А как в java я не знаю. Хотелось бы узнать.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Как освободить память в JavaScript"  
Сообщение от XAnder (ok) on 26-Июн-06, 14:53 
>Прошу прощения за возможное непонимание (привык к c, c++). Указатель в моем
>примере это textnodeText?

Да. Вообще в JavaScript все переменные - это ссылки (указатели) на объекты.

>Правильно ли будет освободить память записав
>textnodeText = null;

Если нет других переменных, указывающих на этот объект, то почти правильно. "Почти", потому что на самом деле память будет освобождена только при следующем сборе мусора. Под "мусором" понимаются те объекты, до которых уже нельзя "добраться" из программы по ссылкам. В какие моменты выполняется сбор мусора, зависит от реализации.

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

>Просто я еще не совсем осознал, что такое указатель в java.

Java и JavaScript - это совершенно разные языки. Путать их нельзя ни в коем разе!

А насчет указателей (ссылок) все предельно ясно: всякая переменная (даже числовая) есть ссылка на объект.

Не устаю рекомендовать к прочтению замечательные "Наблы" Дмитрия Котерова (http://dklab.ru/chicken/nablas/) - там автор простым и понятным языком объясняет и про сбор мусора, и про "хитрости JavaScript" и много чего еще полезного.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Как освободить память в JavaScript"  
Сообщение от chainik (??) on 26-Июн-06, 16:58 
>Не устаю рекомендовать к прочтению замечательные "Наблы" Дмитрия Котерова (http://dklab.ru/chicken/nablas/) - там
>автор простым и понятным языком объясняет и про сбор мусора, и
>про "хитрости JavaScript" и много чего еще полезного.

Спасибо. Добавил в свои закладки.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Как освободить память в JavaScript"  
Сообщение от lfway on 17-Мрт-09, 17:26 
спасибо за ссылку http://dklab.ru/chicken/nablas/
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру