Tracemem

Asignación en R: ¿flecha o lo innombrable?

R
Alguien que no quiero nombrar (pero que sabe de sobra quién es) me comentaba el otro día algo que no sabía de la asignación en R: las presuntas diferencias entre <- e =. Que en resumen eran: ambos asignan pero = hace una copia del objeto asignado mientras que <- no. Como consecuencia, <- es más eficiente desde el punto de vista de la gestión de la memoria. ¿Será cierto? ¿Qué nos dirá tracemem al respecto?

Eles, "casts" y el rizo del rizo de la programación eficiente (con R)

R
Ante las preguntas de alguno de mis lectores, voy a proporcionar una explicación acerca de la misteriosa L. Bueno, voy más bien a dejar que la deduzcan ellos mismos a partir de la siguiente serie de bloques de código: a <- rep( 0, 10 ) typeof( a ) object.size( a ) b <- rep( 0L, 10 ) typeof( b ) object.size( b ) ############## a <- 1:10 typeof( a ) object.

Gestión avanzada de memoria en R: tracemem (II)

R
He leído estos días el capítulo 14 de The Art of R Programming que trata problemas y trucos para mejorar el rendimiento de R en términos de velocidad y memoria. Menciona la función tracemem de la que nos ocupamos el otro día. Menciona el capítulo cómo uno de los estranguladores del rendimiento de R es su política de copiar al cambiar (copy-on-change). Generalmente, cuando modificamos un objeto, R realiza una copia íntegra de él (¿y qué pasa si realizamos pequeñas modificaciones en un objeto muy grande?

Gestión avanzada de memoria en R: tracemem

R
Muchos usuarios de R se enfrentan en alguna ocasión a problemas con el uso y gestión de la memoria. La función tracemem es útil a la hora de identificar ineficiencias en el código. En su página de ayuda se lee: Esta función marca un objeto de forma que se imprime un mensaje cada vez que se llama a la función interna duplicate. Esto sucede cuando dos objetos comparten la misma memoria y uno de ellos se modifica.