+  HandyCache форум
|-+  Главная категория» Общие вопросы» Управление памятью
Имя пользователя:
Пароль:
Страниц: 1 2 3 [Все]   Вниз
  Отправить эту тему    Печать  
Автор Тема: Управление памятью  (Прочитано 26225 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« : 01 января 2008, 17:42:24 »

Поделюсь парой наблюдений по менеджменту оперативной памяти.
Запускаю НС, он в трее. Он сразу берет под себя ~ 12 МБ (почему так много?). Нагружаю программу - используемая память постепенно вырастает до 250 МБ и впечатление, что может расти до бесконечности.
Нажимаю на значок в трее - НС разворачивается из трея в окно. Если я снова нажму на значок или нажму на крестик в окне или "ESC" - НС свернется обратно, и расход памяти останется неизменным. А вот если нажму на прямоугольник программы в таскбаре, то НС так же свернется в трей, но используемая память сократится до ~ 1,5 - 3,5 МБ.
Подумалось также, что НС, возможно, отдает память, если запустить что-то ресурсоемкое. Запустил навороченную игру. НС ни пяди от 250 МБ не отдал.
Имхо, неплохо б освобождать память автоматически: раз в какой-то период времени и/или при достижении определенного лимита расходования оперативной памяти.
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #1 : 01 января 2008, 20:03:15 »

Управление памятью есть, просто когда наблюдаешь надо иметь терпение (управление памятью не терпит суеты  Подмигивающий). Вот графики работы моего НС за прибл. 36 часов.


* hc.png (13.01 Кб, 875x332 - просмотрено 152 раз.)
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #2 : 01 января 2008, 20:37:29 »

А суеты нет. Период в 1 час регулярной нагрузки - и поступательно возрастающий расход оперативной памяти до 250!!! МБ. Это нормально?

И еще одна проблема с памятью. Посмотри, плиз, это "Out of Memory".

* bugreport.rar (4.77 Кб - загружено 27 раз.)
« Последнее редактирование: 01 января 2008, 21:01:47 от Михаил » Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #3 : 01 января 2008, 21:56:26 »

Цитировать
Период в 1 час регулярной нагрузки
Не знаю что это было, но по моему ты просто хотел изнасиловать НС. Я насчитал больше 150 потоков, предназначенных для обработки запросов.
Цитировать
поступательно возрастающий расход оперативной памяти до 250!!! МБ. Это нормально?
Нормально. Эти 150 потоков работают с регулярными выражениями, которые изрядно жрут стэк из-за рекурсивного вызова подпрограмм. Так что несколько мегобайт на стэк потока, к сожалению, горькая реальность.
Цитировать
И еще одна проблема с памятью. Посмотри, плиз, это "Out of Memory"
Отказ в выделении памяти произошел при попытке получить память для лога. Подозреваю, что у тебя был включен лог с отладочной информацией. Лог хранится в памяти и это еще одна статья расхода. Понимаю, что хранение всего лога в памяти, не лучшее решение. Но пока это так.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #4 : 02 января 2008, 00:04:28 »

Не знаю что это было
Подключил benchmarker, чтоб погонять НС на режимах, достижимых в сети при одновременной работе многих пользователей. Изучаю возможность установки НС на реальной сети. Погоняю некоторое время виртуально, заодно изучу матчасть. Надеюсь, результаты будут тебе интересны.
Цитировать
Нормально. Эти 150 потоков работают с регулярными выражениями, которые изрядно жрут стэк из-за рекурсивного вызова подпрограмм. Так что несколько мегобайт на стэк потока, к сожалению, горькая реальность.
Эти 150 потоков, зафиксированные в момент сбоя, 250 МБ не едят. Они отъедают 1-3 МБ, следующие 150 еще и т.д. Постепенно за полчаса-час накапливается 250 МБ. Впечатление, что после отработки эти потоки не освобождают память.
Что делается при сворачивании в трей путем нажатия на таскбаре?
Из-за чего кушается 12 МБ при запуске НС?
« Последнее редактирование: 02 января 2008, 00:17:58 от Михаил » Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #5 : 02 января 2008, 01:19:44 »

Цитировать
Впечатление, что после отработки эти потоки не освобождают память.
Создание/удаление потоков съедает немало процессорного времени. Поэтому потоки не убиваются сразу после использования (закрытия соединения), а остаются в кэше потоков, откуда и берутся для повторного использования. НС наблюдает за средним количеством реально занятых работой потоков и когда в кэше накапливаюся лишние потоки, НС их удаляет. Но делает это не сразу, а спустя какое-то время (вдруг снова понадобятся).
Цитировать
Что делается при сворачивании в трей путем нажатия на таскбаре?
Вызывается функция SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);
Цитата отсюда http://msdn2.microsoft.com/en-us/library/ms686234.aspx
Цитировать
Sets the minimum and maximum working set sizes for the specified process.
...
The working set of a process is the set of memory pages currently visible to the process in physical RAM memory. These pages are resident and available for an application to use without triggering a page fault. The minimum and maximum working set sizes affect the virtual memory paging behavior of a process.

The working set of the specified process can be emptied by specifying the value (SIZE_T)-1 for both the minimum and maximum working set sizes. The pages are removed from the caller's working set. If there are no other processes that are mapping these pages, then they become candidates to be written to backing store. If a pages is still mapped by another process, the page is not written to the backing store until it is unmapped or trimmed from the working set of each mapping process.
Когда я пишу $FFFFFFFF, это и значит (SIZE_T)-1.
Цитировать
Из-за чего кушается 12 МБ при запуске НС?
При запуске НС создает штук 8 (не помню точно сколько) потоков, чтобы можно было быстро обработать первые запросы.
Кроме другой работы при старте: загрузка настроек, компилирование правил из списков.
Столько памяти нужно было НС при старте. И даже если столько уже не нужно, менеджер памяти системы оставляет ее 'закрепленной' за программой. Тоже на всякий случай: раз понадобилась однажды, может понадобиться снова и незачем лишний раз тратить время на выделение/освобождение памяти пока можно себе позволить такую вольность.
« Последнее редактирование: 02 января 2008, 01:31:12 от mai62 » Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #6 : 02 января 2008, 11:17:20 »

Из-за чего кушается 12 МБ при запуске НС?
Хм-м, интересно,- у меня (Vista x64) при старте HC выделяется 8M (плюс/минус 200K с луной/без)...
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #7 : 02 января 2008, 12:32:26 »

При запуске НС создал 6 потоков, взял памяти 11,4 МБ. В принципе, ничего в этом криминального нет, просто казалось (не уверен), что раньше ело 4-5 МБ.

Понаблюдал за НС в сравнении с Проксомитроном в ходе работы. Весь трафик шел: клиент-НС-Проксомитрон-сервер. Каждое новое соединение и/или запрос вызывает телодвижения (сопровождаются захватом дополнительной виртуальной памяти) как НС, так и Прокса. После отработки соединения/запроса Прокс всю эту память с точностью до байта сразу освобождает. НС освобождает кусок, меньший выделенной памяти. В итоге отводимая под НС виртуальная память неуклонно прирастает. Память под Прокс остается теми же 2,4 МБ.

Что делается с отработанными соединениями keep-alive между клиентом-НС и НС-сервером? Кто их закрывает? Какова величина таймаута, после которого они закрываются?

Цитировать
И даже если столько уже не нужно, менеджер памяти системы оставляет ее 'закрепленной' за программой. Тоже на всякий случай: раз понадобилась однажды, может понадобиться снова и незачем лишний раз тратить время на выделение/освобождение памяти пока можно себе позволить такую вольность.
Тем не менее бОльшая часть освобождается, а оставляется лишь маленький кусочек. Очень уж похоже на leak.
Почему эта память не уменьшается менеджером системы, когда НС вообще не нагружен, а я запускаю очень ресурсоемкую игру? Может, память все-же держит сам НС?
« Последнее редактирование: 02 января 2008, 12:50:14 от Михаил » Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #8 : 02 января 2008, 14:05:01 »

Цитировать
Что делается с отработанными соединениями keep-alive между клиентом-НС и НС-сервером? Кто их закрывает? Какова величина таймаута, после которого они закрываются?
Если все запросы браузера НС обслужил и запросов больше нет, он держит соединение 15 сек и разрывает. Если в это время есть соединение с сервером, оно тоже сохраняется.
Цитировать
Тем не менее бОльшая часть освобождается, а оставляется лишь маленький кусочек.
Может это лог съедает? Сейчас сбросил у себя лог и освободилось мегобайт 12. С логом при включенной отладочной информацией нужно быть острожным, уж очень много туда пишется.
Утечки памяти в ноябре почистил. С тех пор вроде ничего потенциально опасного в этом плане не делал.
Цитировать
Почему эта память не уменьшается менеджером системы, когда НС вообще не нагружен, а я запускаю очень ресурсоемкую игру? Может, память все-же держит сам НС?
Я уже писал, что НС удаляет потоки не сразу. Время сохранение может исчисляться минутами или даже десятками минут (зависит от количества потоков, чем больше потоков тем дольше ждать).
Как это происходит видно на моей картинке (это график поведения НС за 24 часа).
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #9 : 02 января 2008, 21:42:32 »

mai62
Есть смысл вникать в эту тему дальше? Если я правильно понимаю, версия 1 все равно не ориентирована на интенсивную сетевую нагрузку, а версия 2 пишется с нуля.
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #10 : 02 января 2008, 21:57:07 »

Во второй версии мне хочется сделать по другому: отдельный поток для каждого запроса слишком расточительно получается. Ну а в первой выбора нет, Indy только так может работать.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #11 : 03 января 2008, 23:45:06 »

Во второй версии мне хочется сделать по другому: отдельный поток для каждого запроса слишком расточительно получается.
Полностью согласен. Еще оцени, отвечают ли требованиям оперативности реагирования на ситуацию блокирующие сокеты. Имхо, их хорошо использовать только в приложениях, где скорость/пропускная способность связи не имеет критического значения.
Сообщить модератору   Записан
mihmih
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #12 : 12 декабря 2008, 17:56:54 »

После 422 часов работы (~10 пользователей) потребление памяти 44 мб - виртуальной 600! мбайт. Грустный
что такое может быть?
Сообщить модератору   Записан
Parcher
Постоялец
***

Репутация: +1/-0
Offline Offline

Сообщений: 136


« Ответ #13 : 27 августа 2009, 15:24:46 »

Дабы не создавать новую тему, пишу сюда.

В диспечере задач для НС выделено памяти (частный рабочий набор) порядком 150 000 кб. Это нормально? Доступ через НС имеют 5 пользователей.


* Снимок.JPG (21.68 Кб, 563x80 - просмотрено 49 раз.)
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #14 : 27 августа 2009, 15:51:15 »

В последних версиях НС на вкладке О программе организован мониторинг потребления ресурсов. Приведи скриншот этой вкладки. Разные программы показывают разные параметры, поэтому сравнивать их показания сложно.
К увеличению потребления ресурсов приводит большая активность пользователей, использование расширений, неограниченное количество строк в мониторе, включенное ведение лога. У тебя скорее всего это результат деятельности пользователя, который качает с торентов. Торент одновременно открывает много соединений и из-за этого растет потребление памяти.
« Последнее редактирование: 27 августа 2009, 15:55:46 от mai62 » Сообщить модератору   Записан
Parcher
Постоялец
***

Репутация: +1/-0
Offline Offline

Сообщений: 136


« Ответ #15 : 27 августа 2009, 15:59:40 »

Есть большая активность пользователей, использование расширений. Количество строк в мониторе 5000 - это много? Ведение лога отключено.


* Снимок.JPG (60.75 Кб, 1124x204 - просмотрено 56 раз.)
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #16 : 27 августа 2009, 16:10:11 »

Цитировать
Количество строк в мониторе 5000 - это много?
Нормально.
Смотри на нижний график, там цифры 4/113. Т.е. сейчас у тебя 4 активных соединения, а максимум был 113 одновременных активных соединений. После бана торрентов количество соединений резко упало, при серфенге столько соединений пяти пользователям не нужно. Через некоторое расход памяти должен сократиться.
Сообщить модератору   Записан
Parcher
Постоялец
***

Репутация: +1/-0
Offline Offline

Сообщений: 136


« Ответ #17 : 28 августа 2009, 08:53:01 »

Я вот что заметил: при первом запуске НС потребляет что-то около 10-15 метров, а может и того меньше. Но при длительной работы без перезагрузки (комп днями не выключается) НС как раз и выходит на потребление в 150 мб! И при этом активность пользователей не очень большая. Вот сейчас НС забирает уже 50 мб. Последний раз я перезагружал НС вчера вечером.
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #18 : 28 августа 2009, 12:14:41 »

150 Мб многовато, но не смертельно. Особенно при существенной нагрузке. 50 Мб (до 80-90) - это нормально. НС не отдает все полученные у системы ресурсы сразу, а придерживает для повторного использования. Получение ресурсов у системы сравнительно длительная операция, поэтому ее лучше избегать. Плохим признаком может являться монотонный рост потребления памяти, с этим нужно разбираться.
Сообщить модератору   Записан
Parcher
Постоялец
***

Репутация: +1/-0
Offline Offline

Сообщений: 136


« Ответ #19 : 28 августа 2009, 12:19:39 »

Как-то можно замерить этот рост потребления? Или только визуально?
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #20 : 28 августа 2009, 12:41:39 »

Для этого я и сделал мониторинг на вкладке О программе. Там есть текущие и пиковые (через /) показатели. Если текущие показания меньше пиковых через некоторое время после уменьшения нагрузки, то НС освобождает ресурсы. Если текущие все время растут вместе с пиковыми, то ресурсы не освобождаются. Степень нагрузки определяется количеством активных соединений. Хотя, конечно, соединение соединению рознь. Разница в потреблении ресурсов разными соединениями может быть на порядок.
« Последнее редактирование: 28 августа 2009, 12:46:09 от mai62 » Сообщить модератору   Записан
Parcher
Постоялец
***

Репутация: +1/-0
Offline Offline

Сообщений: 136


« Ответ #21 : 28 августа 2009, 12:51:38 »

Это я понял. Просто может есть смысл в течении дня пронаблюдать за ростом потребления? Вот к примеру сейчас уже судя по монитору 71 420. Т. е. где-то часа за 4 прибавилось еще 10 метров.


* Снимок.JPG (49.48 Кб, 934x204 - просмотрено 56 раз.)
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #22 : 28 августа 2009, 13:09:55 »

Цитировать
Просто может есть смысл в течении дня пронаблюдать за ростом потребления?
Я сделал мониторинг, чтобы каждый желающий мог понаблюдать и поделиться своими наблюдениями.
Сообщить модератору   Записан
sk!
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 61


« Ответ #23 : 07 сентября 2009, 14:37:02 »

НС за выходные сьел более 600метров, хотя никто не пользовался максимум 1 человек. и перестал обробатывать запросы. Кончилась виртуальная память винды.
А сейчас за 3-4 часа опять отьел 300метров. и пользуют его не очень то активно. и неспеша но уверенно растёт...
Сообщить модератору   Записан
Alex_77
Гость
« Ответ #24 : 07 сентября 2009, 15:39:13 »

"Активные соединения: 6/14"
Что это? Точнее эти 6 соединений?
Сообщить модератору   Записан
sk!
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 61


« Ответ #25 : 07 сентября 2009, 15:53:43 »

подключение к аське и всё.
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #26 : 07 сентября 2009, 16:04:35 »

sk!
Ведение отладочного лога не включено?
После чего такое началось?
Сообщить модератору   Записан
sk!
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 61


« Ответ #27 : 07 сентября 2009, 16:09:22 »

лог вообще отключен. а начлось как то само после выходных.
пожаловались что не открываются сайты и выдается сообщение:
Error occurred! Description: Error reading WWW server response (HTTP Header).

и что интересно сейчас было 418 с копейками прошло 2 запроса и стало 420 с копейками.
а из постоянно активных так и есть 5 соединений.
« Последнее редактирование: 07 сентября 2009, 16:18:06 от sk! » Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #28 : 07 сентября 2009, 16:27:29 »

Само собой мало, что происходит. Настройки не менял никакие перед выходными?
Content Master там стоит? Попробуй выключить.
Сообщить модератору   Записан
sk!
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 61


« Ответ #29 : 07 сентября 2009, 16:29:58 »

настройки как гоовриться, один раз настроил и забыл.
если только обновил CM. Все списки отключены. Работает только CM.
Попробую и его отключть и перезапусть.

что то подсказывает что виной этому CM или те библиотеки с которыми он теперь работает.
« Последнее редактирование: 07 сентября 2009, 16:39:46 от sk! » Сообщить модератору   Записан
sk!
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 61


« Ответ #30 : 08 сентября 2009, 14:58:18 »

по тесту так и получилось без CM загрузка оперотивки намного меньше, с примерно той же нагрузкой максимум 17метров и падает в "покое" (при подключеных 5 аськах) до 12...
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #31 : 08 сентября 2009, 15:23:28 »

К сожалению библиотека регулярных выражений PCRE, которую интенсивно использует CM, потребляет много памяти. Причем использует не динамическую память (т.н. кучу), а стэк. Из-за этого разрастается размер стэка, а он так устроен, что может только увеличиваться. Память, занятая под стэк, освобождается только при разрушении потока. PCRE можно скомпилировать так, что будет использоваться динамическая память. Я пробовал это делать, но тогда PCRE работает на порядок медленнее (память из кучи выделяется гораздо медленнее, чем в стэке). Как часто бывает: если пытаешься в чем-то выиграть, тут же выясняется, что в чем-то другом проиграл.
Конкретно у тебя получается, что соединения аськи висят долго. Поэтому потоки долго не разрушаются и держат под своими стэками много памяти.
Сообщить модератору   Записан
maxn
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 40


« Ответ #32 : 11 января 2010, 06:19:29 »

с последней версией как мне показалось почему-то растет потребление памяти
доходит через сутки-двое работы до 150Мб оперативной и до 250мб виртуальной, может быть это система там чегото кеширует еще не могу понять, но с прежними версиями такого не наблюдал, занимаемая память была ну в пределах 30-40Мб
порядка 5-ти пользователей постоянно работают через него
Добавлено: 11 Января 2010, 05:57:29

а еще стоит ли включать в настройках записи в кеш "Только для Get запросов"
у меня кеш уже под гигабайт, в него пишется все в том числе сессии вида sessionid'белиберда'
которые я так понимаю в следующий раз уже не берутся из кеша при обращении
или же эти сохраненные сессии имеют значение пока они действительны?
я думал  может стоит убрать часть из правила \.(php|cgi|
вобщем пока не знаю как уменшить еще и размер кеша на диске
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #33 : 11 января 2010, 09:27:38 »

По поводу расхода памяти могу сообщить, что в следующей версии он будет существенно уменьшен.
По поводу записи в кэш: "Только для Get запросов" можно включить, для ослабления вреда от sessionid можно поискать правила у нас на форуме (кажется в теме про написание правил по запросам).
Сообщить модератору   Записан
steelrat
Новичок
*

Репутация: +1/-2
Offline Offline

Сообщений: 23


« Ответ #34 : 07 апреля 2010, 03:04:42 »

Сегодня заметил, что винда стала ругаться, что мало виртуальной памяти, посмотрел AnVir Task Manager и стало плохо - НС под себя почти весь своп сожрал.
Почитал тему, по-этому выкладываю скрин с закладки "О программе"



Физическая память, кб: 10 024/ 956 844
Виртуальная память, кб: 1 576 212/ 1 582 540
Виртуальное адресное пространство, кб: 1 826 108/ 1 906 044
Потоки: 1/16

WinXP SP3, uptime 1 день 16 часов

НС 1.0.0.270
Сообщить модератору   Записан
sunserg10
Beta tester
*****

Репутация: +7/-0
Offline Offline

Сообщений: 322


« Ответ #35 : 07 апреля 2010, 09:59:21 »

HandyCache RC3 1.0.0.270

Вчера за полдня HandyCache "сожрал" 388 Mb ОЗУ + 438 своп
см. скриншот:
Сообщить модератору   Записан
legat
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 16


« Ответ #36 : 07 апреля 2010, 12:45:51 »

по моему память жрет не сам HC а CM. При всех включенных галках при активном лазании по инету private bytes резво убегали до 800-900 метров. Сильно помогает отключение "удаление HTML-элементов и запросов по URL"
Сообщить модератору   Записан
sunserg10
Beta tester
*****

Репутация: +7/-0
Offline Offline

Сообщений: 322


« Ответ #37 : 07 апреля 2010, 13:41:18 »

Цитировать
Сильно помогает отключение "удаление HTML-элементов и запросов по URL"

AdBlockPlus не использую. Суть понятна. Включение опции CM:AdMuncher:"Удаление картинок и др. по URL"
отражается на более сильной загрузке ЦП во время обработки URL-а.
Но память это в таааких объемах не пожирает  Отвратительно
« Последнее редактирование: 07 апреля 2010, 13:55:35 от sunserg10 » Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #38 : 07 апреля 2010, 15:21:00 »

В сборке 270 есть утечка памяти. В следующей версии будет исправлено.
Сообщить модератору   Записан
sunserg10
Beta tester
*****

Репутация: +7/-0
Offline Offline

Сообщений: 322


« Ответ #39 : 07 апреля 2010, 19:49:15 »

Цитировать
В сборке 270 есть утечка памяти. В следующей версии будет исправлено.

mai62, когда выложите следующую версию?
Надо полагать, много пользователей попало на "утечку памяти"
при обновлении на HandyCache RC3 1.0.0.270.

Когда Вы планируете выпустить переписанную версию 2.0 ?
(примерные сроки - конец 2010 года, 2011 год)
Сообщить модератору   Записан
nickston
Пользователь
**

Репутация: +4/-0
Offline Offline

Сообщений: 93


« Ответ #40 : 09 января 2011, 23:46:53 »

у меня компьютер с хк работает без перезагрузки неделями и приходиться наблюдать такое явление как рост потребления памяти.
помогает только закрытие и новый запуск хк. при этом чем больше занято памяти тем дольше закрывается хк (явно не линейная зависимость).
раньше когда в области активных соединений висели соединения а реально приложение уже давно закрыто занимаемая память росла, но помогало ручное закрытие соединения, память освобождалась.
сейчас складывается такое впечатление, что те соединения которые раньше висели в активных соединениях сейчас просто удаляются из монитора, но реально продолжают висеть. и соответственно получается что при закрытии хк пытается все таки закрыть эти соединения, поэтому и долго закрывается и отсюда зависимость не линейная.
Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 312



« Ответ #41 : 10 января 2011, 03:29:39 »

Подтверждаю всё выше написанное. Точь в точь такое поведение. Легче стало при выключенном RAM-кэше. (за сутки скушал только два десятка ОЗУ) Если нужно могу записывать данные. (А то память-то у меня человеческая, ещё))))
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #42 : 10 января 2011, 04:20:25 »

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

Ошибочное впечатление! Проверь любым сниффером. Разорванные соединения на самом деле нигде не "висят". Их уже нет.

А про работу в HC кэша потоков почитай здесь:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,1115.msg9484/#msg9484
Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 312



« Ответ #43 : 10 января 2011, 04:30:57 »

Висят соединения строками в мониторе HC (точно помню мучался в бете, сейчас такого вроде нет), а сами соединения в ОС не висят. (юзал TCPView)

nickston, посмотрите мои недавние посты (через мой профиль) про Win7+HC+кэш+I/O приоритет. Может и Вам поможет описанное решение. (У меня комп включён 24/7, тоже)
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #44 : 10 января 2011, 04:33:50 »

На вкладке О программе есть графики расхода памяти. Там хорошо видно, что расход памяти меняется пропорционально количеству соединений с клиентами, причем меняется в разы.
Наличие утечек памяти я проверял, утечек не нашел. В то же время соглашусь с тем, что со временем расход памяти в покое (число соединений 0) умеренно растет. Это связано с тем, что в НС есть несколько внутренних кэшей, предназначенных для ускорения работы (сохраняются результаты различных процедур, чтобы впоследствии не выполнять их заново, а брать готовые результаты) и со временем они наполняются. Периодически кэши чистятся, но не опусташаются совсем. Поэтому нормально то, что скажем через сутки, программа расходует больше памяти, чем сразу после запуска.
Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 312



« Ответ #45 : 10 января 2011, 04:48:00 »

Все замеры делал при 0 подключениях.
Обращал внимание на HC когда Win7 предлагал убить его по причине прожорливости ОЗУ Улыбка (не менее 4-5 дней работы HC)

mail62, прокомментируйте, пожалуйста скриншот:

 смущает число 353868

Почему так много: Virtual Size = 881Mб (смотрел в Process Explorer) (я понимаю, что это не реально занимаемый объём ОЗУ)
« Последнее редактирование: 10 января 2011, 04:54:06 от DIGGER » Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 312



« Ответ #46 : 10 января 2011, 06:12:09 »

и картина несколько часов спустя:
Сообщить модератору   Записан
nickston
Пользователь
**

Репутация: +4/-0
Offline Offline

Сообщений: 93


« Ответ #47 : 10 января 2011, 12:14:37 »

настаивать на соединениях не буду (просто было похоже)
но вот какая интересная статистика:
вчера когда об этом писал ВАП был 300 на 600 сейчас уже 400 на 800.
при этом активных соединений у меня всегда висит одно от аськи  и сейчас одна закачка на 200 мб, и вчера
3 штуки по 200. что говорит о том что с активными соединениями в данный момент не связано никак, что процесс просто зависит от времени.
вчера правда скриншот не делал, с сегодняшнего дня начну делать как наберу побольше статистика отпишу (если что надо смотреть мерить скажите)
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #48 : 10 января 2011, 12:18:47 »

Цитировать
mail62, прокомментируйте, пожалуйста скриншот
Что тут комментировать? Читай эту тему сначала, все, что мог написать, я уже писал.
Сообщить модератору   Записан
nickston
Пользователь
**

Репутация: +4/-0
Offline Offline

Сообщений: 93


« Ответ #49 : 10 января 2011, 12:31:26 »

рам кеш всего 5 мб вроде не страшная цифра что бы его отключить, (ни 5 мб не жалко ни проц у меня не грузиться больше 10 процентов обычно)
винда у меня хп могу поменять приоритет для хк но смысла опять таки не вижу: 1) проц не загружен особо ресурсов урывать не у кого 2) каждый раз в ручную его менять не охота
памяти у меня всего 2 гб при этом с учетом того что хк ее постепенно отжирает то дело доходит до нехорошего
Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 312



« Ответ #50 : 10 января 2011, 15:32:14 »

Я расстроен:   Грустный
Цитата: nickston
…винда у меня хп могу поменять приоритет для хк…
Не можете Вы в WinXP менять I/O приоритет (Windows® Internals Book). Я из-за этого, в основном, и перешёл на Win7.

Цитата: nickston
1) проц не загружен особо ресурсов урывать не у кого
Не правда (Windows® Internals Book). Эффект будет заметен на высоких скоростях. (У меня PhenomII 965 Black Editions — заметна разница)

Цитата: mail62
Что тут комментировать?
Странно от Вас такое слышать. Мне показалось странными цифры 1011084/1843244
Сообщить модератору   Записан
nickston
Пользователь
**

Репутация: +4/-0
Offline Offline

Сообщений: 93


« Ответ #51 : 10 января 2011, 16:20:19 »

Я расстроен:   ГрустныйНе можете Вы в WinXP менять I/O приоритет (Windows® Internals Book). Я из-за этого, в основном, и перешёл на Win7.
Не правда (Windows® Internals Book). Эффект будет заметен на высоких скоростях. (У меня PhenomII 965 Black Editions — заметна разница)
win7 не мой вариант (у меня ноут и с дровами проблема) io прикольно, но переживу
эффект может и будет заметен, но скорость 2 мегабита не такая высокая скорость, и менять вручную приоритеты не имею желания
Сообщить модератору   Записан
Tyjj
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #52 : 16 апреля 2011, 21:26:09 »

Можно как-то уменьшить (оптимизировать) размер занимаемой памяти?
А то  настройки дефолтные, подключено два расширения: R-ext, Content Master, и в памяти занимает прибл 75Мбайт Грустный
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #53 : 16 апреля 2011, 21:46:25 »

Половину расхода памяти дает Content Master. В самом Content Master по моим наблюдениям больше других расходуют память правила AdMuncher.
Сообщить модератору   Записан
itt
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 16



WWW
« Ответ #54 : 15 мая 2011, 10:14:08 »

А можно в следующую версию включить какое  нить расширение типа  что бы программа автоматом перезапускалась допустим один раз в  пять дней в определенное время или в том  случае когда НС  начинает  кушать допустим более 250 метров памяти??
Блин, иногда  забываю перезапускать НС и инет улюдей  начинает  глючить.. а после перезапуска НС опять начинает потреблять всего 10 метров памяти и все работает как часики
Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 312



« Ответ #55 : 15 мая 2011, 14:01:07 »

itt, используйте возможности ОС — "Планировщик заданий".
P.S. HC сам не течёт, смотрите что к нему цепляется: всякие ВКонтакте саверы, Firewall/Antivirus…
Сообщить модератору   Записан
Страниц: 1 2 3 [Все]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: