Доброго времени суток.
В моём приложении происходит вывод запущенных процессов в MT-таблицу со значками файлов этих процессов. При каждом обновлении списка количество RAM, занимаемое приложением увеличивается примерно на мегабайт. Автообновление списка происходит каждые 5 секунд (к примеру). Когда приложение начинает использовать более 80 мегабайт RAM, обновление списка останавливается, начинаются глюки и вообще, приложение начинает работать некорректно.
Как можно избежать постоянного увеличения используемой памяти для моего приложения?
Этот топик читают: Гость
|
Ответов: 355
Рейтинг: 2
|
|||
| карма: 1 |
|
|
Разработчик
Ответов: 26324
Рейтинг: 2148
|
|||
|
nickware писал(а): Как можно избежать постоянного увеличения используемой памяти для моего приложения?Без наличия куска схемы, которая вызывает утечку памяти невозможно вообще никак ответить на поставленный вопрос |
|||
| карма: 22 |
|
|
Ответов: 355
Рейтинг: 2
|
|||
|
nesco, пожалуйста. Дождитесь, когда процесс будет использовать около 80 Мб RAM.
code_30953.txt P. S.: у меня используется VBScript для получения списка процессов, но со штатными компонентами HiAsm тоже самое. |
|||
| карма: 1 |
| ||
| файлы: 1 | code_30953.txt [6.3KB] [141] |
|
Разработчик
Ответов: 26324
Рейтинг: 2148
|
|||
|
nickware писал(а): у меня используется VBScript для получения списка процессовПроблема именно в этом модуле Запусти ПО и диспетчер задач, посмотри, как оперативно пожирается память твоим приложением ------------ Дoбавленo в 01.09: Штатный пример на ProcessInfo, построенный также на технологии WMI, не пожирает память при подключении таймера |
|||
| карма: 22 |
|
|
Ответов: 355
Рейтинг: 2
|
|||
|
Запусти ПО и диспетчер задач, посмотри, как оперативно пожирается память твоим приложением Об этом я и говорил. Да, и действительно. Сейчас произведу дополнительные тесты и отпишусь о результате. ------------ Дoбавленo в 01.18: Похоже, что проблема решена. Благодарю. |
|||
| карма: 1 |
|
|
Разработчик
Ответов: 26324
Рейтинг: 2148
|
|||
|
nickware писал(а): Похоже, что проблема решена. Благодарю.В чем была проблема |
|||
| карма: 22 |
|
|
Ответов: 355
Рейтинг: 2
|
|||
|
nesco, как раз в этом модуле. Странно, но я проверял и ProcessInfo, и там было то же самое. Правда, с тех пор схема была существенно оптимизирована. Сейчас потребление памяти стабильное, в пределах нормы, приложение работает без сбоев.
|
|||
| карма: 1 |
|
|
Разработчик
Ответов: 26324
Рейтинг: 2148
|
|||
|
Ну так ты не озвучил решение проблемы. Ты стал использовать штатный ProcessInfo, правильно я понял
|
|||
| карма: 22 |
|
|
Ответов: 355
Рейтинг: 2
|
|||
|
nesco, да, именно так.
------------ Дoбавленo в 02.36: Ан нет. Проблема решена не полностью. Потребление памяти в норме, а вот прекращение работоспособности приложения через 10-15 минут осталось. Запустите схему с ProcessInfo и таймером и подождите минут 10. У меня список перестал обновляться, а при попытке вручную обновить его (запросить список процессов), вылезает ошибка. |
|||
| карма: 1 |
|
|
Разработчик
Ответов: 26324
Рейтинг: 2148
|
|||
|
А Х его З почему так. Ситему спрашивать надо. А почему нельзя использовать EnumProcess
|
|||
| карма: 22 |
|
|
Ответов: 355
Рейтинг: 2
|
|||
|
nesco, можно. Но с ним такая же лажа. Его и использовал с самого начала, и из-за этой фигни пришлось экспериментировать.
|
|||
| карма: 1 |
|
|
Разработчик
Ответов: 26324
Рейтинг: 2148
|
|||
|
Проверил, 20 мин работало и никаких проблем.
|
|||
| карма: 22 |
|
|
Ответов: 9906
Рейтинг: 351
|
|||
|
[flood]Запускай, и ложись спать, проснешься - скажешь про проблемы
|
|||
| карма: 9 |
|
|
Разработчик
Ответов: 26324
Рейтинг: 2148
|
|||
|
Galkov писал(а): Запускай, и ложись спать, проснешься - скажешь про проблемыНе, нафиг, я комп выключаю. Лучше на работе попробую, там и комп послабее ------------ Дoбавленo в 16.51: Прогнал на работе штатный пример с таймером в течении пяти часов, ни разу не повис |
|||
| карма: 22 |
|
|
Ответов: 355
Рейтинг: 2
|
|||
|
nesco, именно с таблицей и с иконками процессов?
|
|||
| карма: 1 |
|



Поиск
Друзья
Администрация