У меня есть многопоточное серверное приложение, написанное на 'c', которое выполняет много работы с сетью / tcp.В одной клиентской системе сервер теряет память со скоростью около 200 МБ в день.Сервер работает под управлением windows 2012r2
Мои функции выделения внутренней памяти не регистрируют утечку.
Использование функций CRTDBG для анализа общего использования памяти, утечка также не записывается.
Все закрытые dll, которые мы используем, регистрируют все распределения памяти и не показывают никаких утечек памяти.
Единственные другие используемые dll - это стандартные библиотеки по умолчанию.
Это 32-битная сборка.
Обычные подозрения, которые я уже устранил: 1) создание / уничтожение потоков, если я вместо этого повторно использую потоки, утечка остается той же.2) фрагментация памяти, вызывающая явную утечку, я использую не фрагментирующий malloc, и я попытался предварительно выделить всю необходимую память, чтобы не было фрагментации, и она все еще протекает с той же скоростью.
Утечкаотображается как пиковый рабочий набор или медленно увеличивается частный рабочий набор.
Я не вижу утечек в дескрипторе диспетчера задач.
Итак, у меня нет идей.Пожалуйста, сделайте сумасшедшие предположения о том, что еще может использовать этот объем памяти и НЕ записываться функциями ведения журнала памяти CRTDBG.
Спасибо, куча!(каламбур): -)