Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Memory Leak Добавлено: 20.02.06 18:12  

Автор вопроса:  LamerOnLine | ICQ: 334781088 
Проблема в сабже.
На машине круглосуточно трудится приложение, для вываливания мусора из памяти используется SetProcessWorkingSetSize. Но результат не удовлетворяет - хотя Task Manager и показывает его размер порядка 8 метров, через месяц работы своп файл докатывается до полутора гигов. При закрытии приложения - сползает до двухсот метров.
Кто знает - может ли бы проблема в SetProcessWorkingSetSize или утечка только в другом месте.
И можно ли принудительно зачистить своп файл (хотя это, конечно, бред)?

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 20.02.06 20:44
Думаю, обычная утечка памяти. Ты чего-то не освобождаешь, обращений к этому чему-то не происходит, оно скидывается в своп, где и складируется. Без SetProcessWorkingSetSize занимаемая память увеличивается?

Ответить

Номер ответа: 2
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #2 Добавлено: 20.02.06 23:03
А в настройках принудительный не изминяемый размер свопа чё не задать?

Ответить

Номер ответа: 3
Автор ответа:
 ANDREY



Вопросов: 0
Ответов: 33
 Профиль | | #3 Добавлено: 28.02.06 00:06
Если приложение плохо спроэктировано, то как тут может помочь какая нибудь API-функция? Если задать предельный размер свопа - приложение будет просто вылетать при попытке привысить этот размер.

Ответить

Номер ответа: 4
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 28.02.06 00:29
+ CoFreeUnusedLibraries

Кажись существуют проги для обнаружения утечек памяти... Не помню как называется, но подобной пользовался... для дельфи правда :(

Ответить

Номер ответа: 5
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #5 Добавлено: 28.02.06 12:01
CoFreeUnusedLibraries слабовато помогает при многопоточности. Кроме того, не думаю что фишка в невыгруженных библиотеках. Скорее всего либо объект какой-то не умер, либо после своей смерти некорректно освободил память :)

Ответить

Номер ответа: 6
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #6
Добавлено: 28.02.06 17:14
Скорее уж прихватил ее на тот свет :) А процесс остался должен :)

Ответить

Номер ответа: 7
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #7 Добавлено: 28.02.06 19:08
Сначала грешил на SetProcessWorkingSetSize - ведь растет своп а не физпамять. Думал заменить на EmptyWorkingSet, но ведь это один хрен. Похоже, придется процессу ребутиться раз в несколько суток :)

Ответить

Номер ответа: 8
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #8
Добавлено: 11.03.06 21:02
Популярнейшая тулза для обнаружения утечки памяти - valgrind

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам