¿Por qué los archivos grandes son mejores que los archivos pequeños para consolas?

18

¿Por qué los desarrolladores de juegos de consola usan archivos grandes para almacenar datos del juego en lugar de archivos pequeños como en la PC? Menos corrientes en la memoria? ¿Necesita acceder al árbol de archivos muchas veces? ¿Otra razon?

Triang3l
fuente
Quizás un análogo en el mundo web: CSS Sprites
Nick T
CSS sprites es una desventaja desagradable de seguir usando ese viejo oxidado HTTP 1.1 que aparentemente hace que los servidores no puedan enviar muchos recursos con una sola conexión. Deseo un nuevo estándar.
Kos
1
@Kos Su deseo ha sido concedido , aunque desafortunadamente aún no se ha implementado.
phihag
¡Gracias por esto! Quiero hornearles un pastel para que funcionen más rápido.
Kos

Respuestas:

37

Tener un solo archivo grande tiene algunos beneficios para el rendimiento, independientemente de la plataforma. Muchos juegos de PC también usan archivos grandes.

  • Puede almacenar en caché manualmente el desplazamiento de cada archivo dentro del archivo grande, para evitar la necesidad de leer las entradas del directorio del sistema de archivos (lo que puede implicar múltiples búsquedas por archivo abierto si pierde el caché).

  • Obtiene el control total del orden de los datos dentro del archivo, por lo que puede organizarlo para minimizar la necesidad de búsquedas lentas.

  • La compresión de datos generalmente es más efectiva en un solo archivo grande que en archivos individuales.

Tenga en cuenta que evitar búsquedas es muy efectivo para acelerar los tiempos de carga. Un disco duro típico puede tener un tiempo de búsqueda de 10 ms y una velocidad de transferencia de 100 MB / s. Supongamos que necesita cargar 100 archivos de sombreado con un tamaño total de 1 MB. Si tiene que hacer una búsqueda para cada uno, tomará un segundo cargarlos a todos. Con una sola búsqueda estás mirando 20ms para cargarlos todos.

Por supuesto, no todas las consolas tienen discos duros, y las unidades ópticas tienen un rendimiento de búsqueda aún peor, por lo que esos sombreadores pueden tardar 5 o más segundos en cargar un DVD cuando lo buscan. Además, las consolas tienen mucha menos memoria para usar como caché que una PC, por lo que tienden a cargar datos con más frecuencia.

Adán
fuente
99
Muy buena respuesta. Hasta el punto, con ejemplos de búsqueda de un archivo frente a varios archivos.
William Mariager
1
Además, para los juegos en línea competitivos, es mucho, mucho más rápido (y usa mucho menos espacio en disco) para verificar que el jugador no haya manipulado un solo archivo enorme, que validar individualmente miles de archivos pequeños.
Trevor Powell
Palabra clave de Google: sistema de archivos virtual. Además, la necesidad bien establecida de los sistemas de archivos virutal parece indicar que los sistemas de archivos no virtuales podrían usar un poco más de pulido :(.
Kos
Sin embargo, esto es malo para aquellos de nosotros que usamos SSD: no podemos mover las cosas raramente cargadas a HDD, porque todos los datos del juego están dentro de un archivo grande. Di por WoW que nunca voy a Terrallende; Simplemente movería ese archivo del SSD. No es tan factible para decir ... CoD 4.
Mircea Chirea
6

Además de una muy buena respuesta dada por Adam, también me gustaría señalar algunos otros factores importantes:

  1. Cuantos menos archivos tenga, más fácil será la implementación de su aplicación. Esto es especialmente cierto si desea implementar su aplicación en plataformas móviles, como iOS, Android o Windows Phone. Incluso si en el caso de Windows Phone todavía puede tener tantos archivos como desee, ya que los archivos XAP, utilizados para la implementación, son solo un archivo zip, es

  2. Tener todos sus activos en un solo archivo garantiza que todos se descarguen / lean "en pieza" . Muchos jugadores te excusarán por un retraso notable para descargar activos o desempacarlos antes de que comience el juego, pero no serán indulgentes siempre que enfrenten pausas incluso sutiles durante el juego. Por supuesto, puede almacenar previamente en caché sus recursos en RAM, pero cargarlos "en pieza" es aún más fácil para este propósito que cargarlos por archivo.

Alexander Galkin
fuente
Realicé el desarrollo de Android y BlackBerry y nunca tuve ningún problema con tener demasiados archivos pequeños. Sin embargo, hasta ahora no tenía conocimiento del beneficio de los archivos más grandes ...
ADB