El problema que veo y que creo que relentiza tu proceso es que salvo que los registros sean pequeñisimos y que tengas una máquina con muchisima memoria... es imposible tener tal cantidad de registros realmente en la RAM y seguramente el SO está haciendo swaping de las páginas de memoria que tienen tus datos.
El mayor problema de esto es que no está bajo tu control...
Cómo no tengo idea de que estas haciendo es dificil atinarle a algo que sirva... pero creo que te convendria mas tener los datos en disco, ordenados de una forma adecuada, y mantener en memoria una lista mas pequeña, al estilo de un indice, que te ayude a localizar en disco el dato que necesitas.
O deplano, auxiliarte en una base de datos.
Hasta luego.