Переменные типов значений (большинство встроенных типов, таких как int, char, bool, а также структуры) обычно возвращают свою память сразу после возврата из функции, поскольку они размещаются «в стеке» (что означает, что ониявляются частью структуры данных, которая создается, когда функция начинает выполнение, и освобождается, когда функция возвращается).
Переменные ссылочных типов будут автоматически освобождены сборщиком мусора, когда они больше не нужны.
Память, которая не освобождается при возврате функций, вряд ли будет причиной проблем с вашей программой.
Как уже говорилось в другом ответе, не оптимизируйте, если у вас нет веских доказательств того, где находится проблема.