Borrar filtros
Borrar filtros

Movefile optimization and operation

2 visualizaciones (últimos 30 días)
Jason
Jason el 13 de Sept. de 2012
Hey, just a short question. When renaming a file with movefile, does Matlab optimize away the move part of movefile when source and destination are in the same directory? I'm performing an operation on a file using a toolbox which writes in place to the file, but I'd like to prefix the file with a character to denote what operation has occurred. As the file can potentially be quite large, I'd like to avoid actually shuffling the data around.
As an aside, how does movefile actually work? Does it just update the directory table? If so, is there any difference in the overhead when renaming a file, like I am, compared to moving the file to some other directory on the same volume?

Respuesta aceptada

Walter Roberson
Walter Roberson el 13 de Sept. de 2012
The internal behavior is undocumented, and varies with the operating system.
We have evidence that copyfile() on linux invokes the system "cp" command to do the copying. It then becomes plausible that on linux, movefile() would invoke linux's "mv" command. The behaviour would then be determined by the OS utility. In Linux, "mv" on the same filesystem changes directory entries but does not make a copy, and the overhead would be very nearly the same for a rename in the same directory as it would be for moving to a different directory (but rename would only need to write one directory entry rather than two.)
I do not know how movefile() or copyfile() are implemented in MS Windows. It is not clear which OS you are using; the term "volume" is used for both MS Windows and Mac OS-X.
  1 comentario
Jason
Jason el 13 de Sept. de 2012
In my case, it's Linux. Maybe I should have been using the term filesystem. Looks like I shouldn't have any bottlenecks here. Thanks for the quick response.

Iniciar sesión para comentar.

Más respuestas (1)

Jan
Jan el 13 de Sept. de 2012
Editada: Jan el 13 de Sept. de 2012
MOVEFILE has been very slow at least until R2009a, perhaps until today. The C implementation can be much faster: http://www.mathworks.com/matlabcentral/fileexchange/29569-filerename, but it has not been tested under Linux.

Categorías

Más información sobre Environment and Settings en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by