Solo pensé en compartir un poco de datos de rendimiento de descompresión ...
Estoy haciendo un prototipo de un visor de 360 grados: un carrusel donde el usuario puede girar a través de una serie de fotos tomadas desde diferentes ángulos, para dar la impresión de poder girar un objeto sin problemas.
He cargado los datos de la imagen en una matriz de NSData para eliminar la E / S de archivos de la ecuación, pero creo NSImage sobre la marcha. Probando a una velocidad de fotogramas cercana a la máxima (~ 25 fps) y viendo en Instruments, veo que la aplicación está claramente vinculada a la CPU y hay un aumento de aproximadamente un 10% en la carga de la CPU que muestra ~ 275 kb png frente a ~ 75 kb jpg.
No puedo decirlo con certeza, pero supongo que el límite de la CPU es solo por la ejecución general del programa y el movimiento de todos los datos en la memoria, pero la descompresión de la imagen se realiza en la GPU. De cualquier manera, el argumento de rendimiento JPG frente a PNG parece favorecer a JPG, especialmente cuando se toman en consideración los tamaños de archivo más pequeños (y por lo tanto, los tamaños más pequeños de los objetos en la memoria al menos en algunas partes de la cadena).
Por supuesto, cada situación es diferente, no hay sustituto para las pruebas ...