Re: [escepticos] Lenguajes de programación (era: No pienses en un elefante)

Borja Marcos BORJAMAR en SARENET.ES
Jue Ago 23 10:06:37 WEST 2012


On 23 Aug 2012, at 10:59, Tei <oscar.vives en gmail.com> wrote:

> En un sistema operativo moderno no lo se. Pero en Windows si tienes
> miles de ficheros en un directorio, se degrada la velocidad cosa mala.
> Con 250.000 ficheros en una carpeta, igual te pegas esperando 20
> segundos para hacer un ls.

¿Y crees que los juegos están haciendo "ls"? Te tiras tiempo porque es una operación ineficiente que tiene que pedir datos de cada archivo, y además clasificar la lista.

Otra cosa muy distinta es abrir un archivo concreto y leerlo, que es lo que se hace en condiciones normales. 

> Tener todos los datos en un solo fichero significa que solo tienes un
> handler de fichero, tener muchos handlers abiertos puede ser
> problematico, o a lo mejor el sistema operativo es lento al abrir
> nuevos ficheros porque las operaciones internas que hace (por ejemplo
> consultas de permisos) añaden carga de trabajo.   Ademas los ficheros
> de un juego pueden ser muy pequeños y haber muchos,  dependiendo del
> tamaño del sector de disco, esto puede significar que el disco lee 4
> megas de sectores de disco para ofrecer 250 KB de datos. Leer 4MB es
> mas lento que leer 250KB.    Si guardas los datos en un fichero .dat,
> solo necesitas un identificador, offset dentro del fichero, y
> longitud.  Crear el fichero .dat es lento (pero solo se hace una vez,
> en el ordenador del desarrollador), pero leer es instantaneo.  Un
> sistema de ficheros esta optimizado para facilitar tanto el escribir
> como el leer, esta optimizado para otras operaciones.

La misma que si un "sistema de archivo virtual" dentro de tu programa lo hace, con la desventaja de que no se beneficia de los mecanismos de mejora que ofrece el S.O.

Por tanto, insisto, las razones son las que he puesto más arriba, no le des más vueltas ;)

Ah, hay una más. Hacer más fácil la distribución de actualizaciones. Distribuyes un archivo .DAT de ésos en lugar de un .zip (que además era un problema, porque los Windows no tenían descompresor hasta ayer).




Borja.



Más información sobre la lista de distribución Escepticos