O TClientDataSet é uma estrutura de acesso a dados em memória que está presente no Delphi desde as suas primeiras versões. Este componente é um dos mais utilizados por desenvolvedores, tendo muitas aplicações práticas.

Porém, este mesmo componente apresenta alguns problemas com consumo de memória, especialmente  em cenários  multi-threaded , por não ser um componente que está completamente otimizado este tipo de cenário. Apesar de não apresentar problemas de Memory Leak , o próprio consumo de memória do componente pode causar o travamento da aplicação, geralmente com erros de "Insufficient Memory for this Operation" ou "Out of Memory". 

Para reduzir o impacto deste problema, existem alternativas à utlização do TClientDataSet, como trabalhar com dados em arquivo ao invés de memória, trabalhar com estruturas de dados que utilizam Generics ou trocar o TClientDataSet por componentes de terceiros que têm a mesma finalidade, como o KbmMemTable .