Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Сумасшедшая утечка памяти в Opera при использовании javascript в IFRAME (https://javascript.ru/forum/css-html-browser/13124-sumasshedshaya-utechka-pamyati-v-opera-pri-ispolzovanii-javascript-v-iframe.html)

Маэстро 16.11.2010 21:22

Цитата:

Сообщение от Kolyaj (Сообщение 79499)
Ну почему же, мы можем прийти к решению вашей первоочередной проблемы, вместо решения проблемы-следствия.

Абстрагируйтесь, пожалуйста, от механизма транспорта данных. Первоочередная проблема в том, что Opera при отправке данных съедает много памяти. Если бы это было 3 Кб - я бы ещё закрыл глаза на это. А тут 300 Кб. У Вас разве нет сайтов с формами? И Вы нигде не используете iframe, а везде используете ajax?
Думаю, что это проблема Оперы. Создание графических микрокопий страниц, чтобы мгновенно их отображать при наведении мышкой на верхушку закладки - это красивенько, прикольно, но не такой ценой. Другими словами, зачем делать микрокопии фреймов в истории по 300 Кб, если тело фрейма содержит код длиной всего 52 байта??

Kolyaj 16.11.2010 21:31

Цитата:

Сообщение от Маэстро
У Вас разве нет сайтов с формами? И Вы нигде не используете iframe

В таком виде не использую.

Маэстро 18.11.2010 12:29

Цитата:

Сообщение от Kolyaj (Сообщение 79492)
А зачем вам фрейм вообще? Чем обычный XMLHttpRequest не устраивает?

Проверил "обычный XMLHttpRequest". Взял по инструкции getXmlHttp() с http://javascript.ru/ajax/intro только добавил метод борьбы с кешированием ответов реквеста Math.random().
Тестирование проводил в трёх броузерах IE6, Mozilla Firefox 3.6.12, Opera 10.63.
Написал скрипт, который шлёт запросы на сервер с частотой 10 раз в секунду (сервер не жалко) и оставил на ночь (с 22:00 до 10:00).
Вот результаты вечер/утро по потребляемой оперативной памяти:
IE: 20М/20М (память осталась на том же уровне)
Fire Fox: 47М/47М (память осталась на том же уровне)
Opera: 36М/380М (!!! - нет слов)

Но это ещё не всё. После закрытия соответствующих вкладок (и отдельного окна IE6) Опера еле-еле шевелилась. Я обнаружил, что общая потребляемая память в компьютере возросла до 2,5 GB! И после полного закрытия Оперы она очистилась до 1,5 GB. Очевидно, что Опера потребляет память не только в собственном EXE-процессе, но и замусоривает какие-то системные ресурсы.
Одним словом вот такая "Опера". Да пусть меня простят пользователи Оперы, но она тупая. Либо её разработчики.
Да и вообще, о чём разговор, если за последний год вышло два десятка её релизов? Это гонка наперегонки с Гуглом? Общеизвестно, что скорострельная разработка приводит к непродуманности функционала и ошибкам. Нельзя так бесцеремонно обращаться с ресурсами Пользователей.
И да пусть меня услышат разработчики.


Часовой пояс GMT +3, время: 00:10.