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