Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.08.2009, 13:02
Draeden
 
Сообщений: n/a

Утечки памяти: как сделать ?
Ни разу не программировал на языках с автоматическим освобождением памяти, как в javascript. Якобы этот язык содержит такие конструкции которые при неправильном использовании создадут утечки памяти. Я хочу проверить свои скрипты на наличие подобных багов, поэтому, для начала, попытался специально написать такой код который породит утечку памяти. Это оказалось не так просто: банальные циклические ссылки Firefox распознаёт очень быстро и удаляет все лишние объекты.

Поскольку я так и не смог создать утечку памяти, то хотел бы, чтобы кто нибудь написал простой код на javascript который создаст утечку памяти. Единственная оговорка: javascript код должен порождать утечку памяти из за особенностей языка javascript, а не из за ошибок в коде браузера. Другими словами будем считать, что браузер интерпретирует и выполняет javascript код идеально.
Ответить с цитированием
  #2 (permalink)  
Старый 29.08.2009, 14:45
Аспирант
Отправить личное сообщение для Semen Посмотреть профиль Найти все сообщения от Semen
 
Регистрация: 28.07.2009
Сообщений: 67

Знакомый ник!!! Знаком по поверхностям ;-) ?
Ответить с цитированием
  #3 (permalink)  
Старый 29.08.2009, 17:23
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Draeden
Другими словами будем считать, что браузер интерпретирует и выполняет javascript код идеально.
в таком случае утечек не будет
все утечки являются багос браузера, причем обычно на стыке JS и не-JS частей страницы
Ответить с цитированием
  #4 (permalink)  
Старый 29.08.2009, 22:16
Новичок на форуме
Отправить личное сообщение для Draeden Посмотреть профиль Найти все сообщения от Draeden
 
Регистрация: 29.08.2009
Сообщений: 2

Semen, да, мир тесен Правда я больше их не делаю - надоело
Gvozd, другими словами я не смогу сделать несколько бесполезных объектов которые нужны только друг другу, чтобы эти объекты через пару секунд не удалил браузер ? В таком случае javascript очень хороший язык

Тогда переформулирую вопрос. Какие основные паттерны кода не любят браузеры ? IExplorer, как я догадываюсь, не любит язык javascript в целом (как и html, css и пр.) А что в случае правильных браузеров: firefox, opera, google chrome ? Особенно интересно увидеть код который не понравится Firefox, т.к. этот код я так и не придумал
Ответить с цитированием
  #5 (permalink)  
Старый 29.08.2009, 22:22
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Draeden,
Что вы имеете в виду под "не понравится"?
Ответить с цитированием
  #6 (permalink)  
Старый 29.08.2009, 22:30
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от Draeden
IExplorer, как я догадываюсь, не любит язык javascript в целом
IE использует JScript, который хоть и похож на JavaScript, но всетаки другой язык со своими достоинствами и недостатками.

Парится об утечках памяти нужно только для необновленных версий IE6, IE7. Например, можно назначить огромное количество обработчиков событий так, чтобы в замыкание попали ссылки на DOM-элементы, тогда при каждом обновлении страницы, браузер будет занимать все больше и больше памяти. Так же есть специальная программа для обнаружения утечек памяти в Internet Explorer.
Ответить с цитированием
  #7 (permalink)  
Старый 30.08.2009, 12:55
Новичок на форуме
Отправить личное сообщение для Draeden Посмотреть профиль Найти все сообщения от Draeden
 
Регистрация: 29.08.2009
Сообщений: 2

Андрей Параничев, "не понравится" значит, что Firefox допустит утечку памяти.
Octane, там даже не javascript ? Впрочем на то он и эксплорер
Ответить с цитированием
  #8 (permalink)  
Старый 30.08.2009, 16:39
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

Сообщение от Draeden
там даже не javascript ?
JavaScript там тоже есть=)
__________________
Лови позитив
Ответить с цитированием
  #9 (permalink)  
Старый 30.08.2009, 17:01
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от JSprog
JavaScript там тоже есть=)
В Internet Explorer нет JavaScript, он использует свой ECMAScript-подобный язык JScript. Только благодаря тому, что у языков общие корни и похожий синтаксис, мы можем писать практически одинаковый код для W3C-совместимых браузеров и Internet Explorer.

Последний раз редактировалось Octane, 30.08.2009 в 17:06.
Ответить с цитированием
  #10 (permalink)  
Старый 30.08.2009, 17:41
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

Ага...не в одной книге по JS об этом не говорилось
Ты хоть как врёшь
__________________
Лови позитив
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить из памяти весь XML документ? EisBerg Events/DOM/Window 1 03.04.2010 14:45
Вопрос как сделать эту панельку Определённых размеров и свойств. jei jQuery 3 09.06.2009 19:14
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24
как сделать плавное затухание страницы magistr_bender Элементы интерфейса 1 18.03.2009 14:34