Цитата(AHTOXA @ Jan 23 2012, 21:19)

А работа с памятью через New/Dispose или GetMem/FreeMem используется?
Это есть при запуске. Как раз выделяются 20-40 МБ. Далее, буквально раз в 5 минут выделяется по 10-100 байт через GetMem(). За сутки GetMem() может выделить от силы мегабайт, скорее в 10 раз меньше.
Цитата
Плагины? Интерфейсы? COM/OLE?
Только класс TNMHTTP.
Цитата
Если нет, то скорее всего всё нормально. Просто происходит фрагментация кучи, и при очередном распределении большой строки для неё не находится свободного непрерывного места, и приходится выделять новый кусок.
На 99% не верю. Но хотелось бы как-то проверить это дело. Что показательно, так это то, что выделяемые каждый раз строки полностью удаляются (должны). Фактически строк, которые живут долго и создают фрагментацию я не имею. Хотя... Есть такая штука Memo, в которую медленно добавляется текст и через сутки его объём доходит до 30-200 КБ. Могу добавлять этот текст не в Memo, а в файл, для проверки версии.
Могу даже полностью убрать вызовы GetMem() в процессе работы, выделив мегабайт заранее и потом внутри него линейно выделять куски.
Но хотелось бы не делать лишней работы, и узнать заранее что надо, а что не надо.
Цитата(AHTOXA @ Jan 23 2012, 21:19)

После достижения какого-то размера этот процесс устаканится, и рост памяти прекратится.
Не заметил. Стабильно растёт. Тем более, если уже теряется в 10 раз больше, чем необходимо, то это реальный беспредел.