Estoy imprimiendo una gran serie de figuras como archivos .png. Cada figura es un gráfico de una columna de una matriz de datos, y tomo los archivos .png y los ato juntos en una animación.¿Por qué MATLAB se ralentiza cuando se imprimen muchas figuras (.png)?
Mi problema es que los primeros cientos de imágenes se imprimen rápidamente, pero la cantidad de tiempo para crear cada nueva figura aumenta rápidamente, de ~ 0.2 segundos para los primeros cientos de archivos .png a 2 segundos o más en torno al 800º figura.
El uso de la memoria aumenta durante la ejecución de la secuencia de comandos, pero solo en 1 MB cada pocos segundos más o menos. Esto está en Windows ejecutando R2009b de 64 bits.
Mi código es algo como:
n = 1000;
matrix = rand(n);
f = figure('Visible','off'); % create the figure
for i_ =1:n
plot(1:n,matrix(:,i_));
ylim([0 1]);
set(f,'PaperUnits','inches','PaperPosition',[0 0 6 4]);
png_name = [ 'img/timestep_' sprintf('%05d',i_) ];
print('-dpng', png_name);
end
¿Puedes hacer solo 500 a la vez? ¿Tienes un servicio que reiniciará tu aplicación? –
No puedo enfatizar esto lo suficiente ... MATLAB tiene un maravilloso generador de perfiles integrado y debe usarlo regularmente. La creación de perfiles ayuda a identificar muchos de estos problemas. – linuxuser27