Re: [escepticos] Lenguajes de programación (era: No pienses en un elefante)
José Ángel Morente
joseangel en morente.org
Jue Ago 23 10:46:32 WEST 2012
2012/8/23 Borja Marcos <BORJAMAR en sarenet.es>:
>> 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.
>
Te aseguro que lo que cuenta Tei es así. Usar un archivo DAT por
"esconder los gráficos" es una gilipollez, porque de hecho la mayoría
de juegos de ese tipo vienen preparados para incluso hacer tus propios
escenarios, con tus gráficos, etc. y son muy manipulables por el
usuario final.
Pero acceder a miles de archivos pequeños en Windows es un terrible
ejemplo de ineficiencia. Cuando metes todo en un DAT, el juego ya sabe
a qué offset exacto tiene que ir a buscarlo (además sin fragmentación
en la mayoría de casos) por lo que haces que leer del DAT sea casi
casi como leer de memoria.
> 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.
Pero tú eso no lo sabes; tu juego tiene que correr bien en Windows y
tú cuando despliegas un juego en miles de PCs desconocidos te puedes
encontrar desde gente que tiene mal configurado el swapping (algo muy
común en Windows) hasta gente que lo tiene desconectado del todo
porque piensan que el OS es más eficiente así.
Cuántas más sorpresas evites, mejor.
--
http://misshapenreality.blogspot.com/
Más información sobre la lista de distribución Escepticos