Trouble que convierte una larga lista de data.frames (~ 1 millón) a data.frame único usando do.call y ldply

Sé que hay muchas preguntas aquí en SO sobre formas de convertir una lista de data.frames en un solo data.frame usando do.call o ldply, pero esta pregunta trata sobre comprender el funcionamiento interno de ambos métodos y tratar de descubrir por qué no puedo trabajar para concatenar una lista de casi 1 millón de df de la misma estructura, los mismos nombres de campo, etc. en un solo data.frame. Cada data.frame es de una fila y 21 columnas.

Los datos comenzaron como un archivo JSON, que convertí en listas usando JSON, luego ejecuté otra copia para extraer parte de la lista y la convertí en data.frame y terminé con una lista de data.frames.

He intentado

df <- do.call("rbind", list)
df <- ldply(list)

pero tuve que matar el proceso después de dejarlo correr hasta 3 horas y no recuperar nada.

¿Existe un método más eficiente para hacer esto? ¿Cómo puedo solucionar lo que está sucediendo y por qué tarda tanto?

FYI: estoy usando el servidor RStudio en un servidor quad-core de 72GB con RHEL, así que no creo que la memoria sea el problema. sessionInfo a continuación:

> sessionInfo()
R version 2.14.1 (2011-12-22)
Platform: x86_64-redhat-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=C                 LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] multicore_0.1-7 plyr_1.7.1      rjson_0.2.6    

loaded via a namespace (and not attached):
[1] tools_2.14.1
>