¿Qué tiene que hacer la computadora para mover algunos archivos?

2

Estaba intentando mover algunos archivos a una carpeta (E: a E: así que estoy bastante seguro de que se está moviendo y no se está copiando) pero me están tomando unos minutos para mover unos 60k archivos. Tenía la impresión de que el movimiento de archivos se supone que es muy rápido, así que tenía curiosidad por saber qué tiene que hacer la computadora para mover algunos archivos a una carpeta.

(Estoy usando Windows Vista Home Premium Sp2, pero en realidad esperaba dirigir la pregunta de una manera más amplia)

Pacerier
fuente
Es un problema conocido con Vista ... encrypted.google.com/…
Joe Internet
4
En realidad, ese fue un problema al principio de Vista, se curó con SP1, otra cosa está mal, ejecute un chkdsk / r .. en el disco duro.
Moab
En primer lugar, hacer algo 1.000 veces por segundo (60k / 60s) ES rápido. En segundo lugar, suelta la interfaz gráfica de usuario Si quieres que vaya más rápido. En tercer lugar, como han señalado otros, mover solo la entrada del directorio será casi instantáneo, mientras que mover los archivos individuales tomará mucho más tiempo.
krowe
@krowe, es relativo y depende de lo que estés haciendo. Dibujar 1000 píxeles por segundo es extremadamente lento.
Pacerier

Respuestas:

3

Aunque solo está moviendo los archivos a una carpeta que está en el mismo disco, el sistema de archivos todavía tiene que hacer un poco de trabajo para mover los archivos. La Tabla maestra de archivos (MFT) debe actualizarse para reflejar la nueva ubicación de los archivos, y el registro del sistema de archivos también debe actualizarse para permitir que los cambios se restituyan en caso de que el movimiento se interrumpa por un corte de energía, etc.

No estoy seguro de cómo calcular exactamente cuántas cosas diferentes tiene que hacer el sistema de archivos, pero podemos asumir que tendrá que hacer al menos 60k cambios en la MFT. Estos muchos cambios conllevan muchas lecturas y escrituras pequeñas, en las que los discos duros no son muy rápidos.

cmorse
fuente
Bueno, creo que tardó 3 minutos, ¿entonces quiere decir que cada segundo solo puede manejar como 333 cambios?
Pacerier
Bueno, mi estimación de los cambios de 60k fue muy optimista. No he podido encontrar una buena fuente para esto, pero desde la memoria creo que hay aproximadamente 3 operaciones necesarias para cada archivo (haciendo un total de ~ 180k). (1) Escriba los metadatos de cambio de nombre en el diario, (2) realice la operación de cambio de nombre real y (3) escriba que el cambio de nombre fue exitoso para el diario. Esto es mucho trabajo por hacer, y los sistemas de archivos son muy conservadores al hacer estas cosas. Así que un número más como 1000 cambios por segundo parece razonable. Lo que no es tan malo dado el número de operaciones que son necesarias.
cmorse
Casi lo olvido. A menos que ya haya sido almacenado en caché, el sistema de archivos también tiene que compilar una lista de todos los archivos y carpetas que se deben mover.
cmorse
para confirmar, ¿quiere decir que mover 1000 archivos de 1KB es 1000 veces más lento que mover un archivo de 1GB porque después de todo lo que importa es la cantidad de archivos y el tamaño es arbitrario?
Pacerier
Sí, eso es a lo que me refería.
cmorse
1

Advertencia: respuesta tardía a continuación

  1. La computadora crea una lista de todos los archivos y carpetas (recursivamente) que deben ser movidos (a menos que estén en caché, lo cual es raro en todos los archivos debido a directorios anidados bastante frecuentes).

  2. Para cada archivo, la computadora:

    • R : comprueba si hay algún manejador abierto desde otros programas al archivo,
    • R : calcula el tamaño del archivo,
    • R : comprueba si el destino existe,
    • R : comprueba si hay suficiente espacio en el destino,
    • R : comprueba si hay un archivo con el mismo nombre en el destino,
    • R : comprueba los permisos de escritura en el destino,
    • R : lee el archivo de la fuente,
    • W : escribe el archivo al destino,
    • R : lee la propiedad del archivo, los permisos y la información de ACL de la fuente,
    • W : escribe la propiedad del archivo, los permisos y la información de ACL en el destino,
    • R : lee la tabla de archivos,
    • W : escribe la tabla de archivos actualizada,
    • W : elimina (sobrescribe con valores aleatorios o 0) el archivo original (o una parte de él),
    • R : vuelve a leer la tabla de archivos (para la eliminación),
    • W : vuelve a escribir la tabla de archivos actualizada (para la eliminación).

Esto coloca las cifras en 15 operaciones por archivo (10 leídas, 5 escrituras; en realidad, el número de operaciones es más), por lo tanto, para los archivos de 60 k hubo más de 900 operaciones, es decir, 5 operaciones por segundo.

Suponiendo que tanto la fuente como el destino se encontraban en el mismo medio (casi siempre eliminando la posibilidad de operaciones simultáneas verdaderas), nuevamente se supone que es un disco duro (que agrega mucho movimiento mecánico), operaciones de 5k (más operaciones de archivo de fondo ) es bastante bueno.

Y lo anterior es para el más pequeño de todos los archivos.

Teniendo en cuenta el tamaño de los archivos, la mayoría de los sistemas operativos:

  1. hace operaciones de archivo en trozos (más lectura y escritura),
  2. intenta no quemar tu disco duro al no usarlo al 100%.

Si llamas lento a tu computadora después ese , intente mover archivos físicos y documentos (60k de ellos) uno por uno.

Perdón por el sarcasmo en la última línea, estaba tratando de aclarar mi punto.

sbrm1
fuente
¿Estás seguro de la W: deletes (overwrites with random values) the original file ?
Hennes
Algunos sistemas pueden sobrescribir con 0 ... Pero sobrescribe al menos una parte del archivo para eliminarlo.
sbrm1
@Hennes respuesta editada.
sbrm1