Если объём занимаемой памяти растёт во время выполнения, то, возможно, это баг системы и она не забирает память,
которую программа пытается ей вернуть. Поэтому надо по возможности избегать частых выделений памяти. Если это
происходит внутри подпрограмм непосредственно или в создаваемых в ней объектах классов, то с этим трудно
бороться, а в главной программе надо при её запуске выделить память подо все её элементы один раз и больше
не использовать пар отведения/освобождения памяти. Чтобы этого не делать в подпрограммах, т.е. чтобы они
не отводили память для своих внутренних нужд, которую потом освобождают, можно и им передавать адрес буфера,
специально предназначенного для этого в главной программе.
Ещё я в главной программе по одному разу отвожу память для всех элементов одного типа - int, char и других,
а затем по ней размещаю указатели, вместо того, чтобы для каждого массива отводить память отдельно.