Es muy difícil responder. Sin embargo, he visto que al final asignas un
nil a una variable. Recuerda que con eso no liberas memoria.
Me han recomendado muchas veces la herramienta
Valgrind, aunque nunca la he usado por vagancia. Quizá te sirva para encontrar dónde reserva memoria que luego no libera.