Относительно timer_create (утечка памяти) - PullRequest
0 голосов
/ 06 апреля 2011

Я работаю над инструментом утечки памяти, дело в том, что этот инструмент должен улавливать утечки памяти только из тестовой программы, но на самом деле я создал таймер с использованием API timer_create (POSIX), и это как-то вызывает утечка 144 + 56 байт.

Есть идеи, как это остановить? Как я могу убедиться, что все запросы malloc от timer_create не зарегистрированы?

Я использую метод функции потока таймера, а не сигнал. SIGEV_THREAD

1 Ответ

0 голосов
/ 06 апреля 2011

Я не вижу никаких N в сообщенной вами утечке памяти, только то, что кажется небольшой константой, поэтому мое первоначальное предположение состоит в том, что это чисто однократные накладные расходы на настройку системы потоков таймера, а не фактическая утечка памяти. Попробуйте запустить вашу программу с strace и убедитесь, что таймер уничтожен. Если так, то какая бы внутренняя память оставалась, зависит от качества реализации, а не от потенциальной ошибки в вашей программе.

Кстати, еще один хороший подход к тестированию: создайте 10 или 100 таймеров, затем уничтожьте их все и сравните количество «утечки» памяти. Если это так же, как с одним, я бы сказал, что нет проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...