Isso provavelmente é verdadeiro para todos os ORMs, mas o caso específico com o qual tratei hoje tem a ver com Linq para SQL. Se você estiver consultando dados de um banco de dados e não precisar modificar nenhum dado relacionado ao que você consulta, desative o rastreamento de objetos.
Nosso aplicativo legado estava puxando aproximadamente 1,5 milhão de objetos de volta que iteraria e passaria para um aplicativo cliente. Isso deveria ter sido cerca de 90k, mas estava aumentando a memória em aproximadamente 1,3 GB !! Por que tanta memória você pergunta? Porque o rastreamento de objetos estava trazendo de volta muitos objetos desnecessários.
Desliguei e sabe, sem pico de memória !!