A menos que la memoria sea extremadamente apretada, el tamaño de una copia de estos archivos no es el factor determinante principal. Dado que se trata de un sistema integrado, probablemente tenga una buena idea de qué aplicaciones usarán sus bibliotecas y cuándo. Si su aplicación abre y cierra las múltiples bibliotecas a las que hace referencia diligentemente, y usted nunca tiene todas las bibliotecas abiertas simultáneamente, entonces la biblioteca compartida supondrá un ahorro significativo en la memoria RAM.
El otro factor que debe tener en cuenta es la penalización de rendimiento. Abrir una biblioteca compartida requiere una pequeña cantidad de tiempo (generalmente trivial); si tiene un procesador muy lento o requisitos de tiempo real difíciles de alcanzar, la biblioteca estática no incurrirá en la penalización de carga de la biblioteca compartida. Perfil para ver si esto es significativo o no.
En resumen, las bibliotecas compartidas pueden ser significativamente mejores que las bibliotecas estáticas en algunos casos especiales. En la mayoría de los casos, hacen poco o ningún daño. En situaciones simples, no obtiene ningún beneficio de las bibliotecas compartidas.
Por supuesto, la biblioteca compartida habrá un ahorro significativo en Flash, si usted tiene múltiples aplicaciones (o versiones de su aplicación) que utilizan la misma biblioteca. Si usa una biblioteca estática, se compilará una copia (que es aproximadamente del mismo tamaño que la biblioteca compartida [1]). Esto es útil cuando estás en una estación de trabajo de PC. Pero tú lo sabías Estás trabajando con una biblioteca que solo utiliza una aplicación.
[1] La diferencia de memoria de los archivos de la biblioteca individual es pequeña. Las bibliotecas compartidas agregan un índice y una tabla de símbolos para que dlopen(3)
pueda cargar la biblioteca. Si esto es significativo o no dependerá de su caso de uso; compila para cada uno y luego compara los tamaños para determinar cuál es más pequeño en Flash. Tendrá que ejecutar y crear un perfil para determinar qué consume más RAM; deberían ser similares, excepto por la carga inicial de la biblioteca compartida.