A meno che la memoria non sia estremamente, la dimensione di una copia di questi file non è il fattore determinante principale. Dato che questo è un sistema embedded, probabilmente hai una buona idea di quali applicazioni useranno le tue librerie e quando. Se la tua applicazione apre e chiude le librerie multiple, fa riferimento doveroso, e non hai mai tutte le librerie aperte contemporaneamente, quindi la libreria condivisa sarà un notevole risparmio di RAM.
L'altro fattore che è necessario considerare è la penalità delle prestazioni. L'apertura di una libreria condivisa richiede una piccola quantità (solitamente banale) di tempo; se si dispone di un processore molto lento o di requisiti in tempo reale difficili da raggiungere, la libreria statica non incorre nella penalità di caricamento della libreria condivisa. Profilo per scoprire se questo è significativo o meno.
Per riassumere, le librerie condivise possono essere significativamente migliori delle librerie statiche in alcuni casi speciali. Nella maggior parte dei casi, fanno poco o nessun danno. In situazioni semplici, non si ottiene alcun beneficio dalle librerie condivise.
Naturalmente, la libreria condivisa sarà un notevole risparmio in Flash, se si dispone di più applicazioni (o versioni della vostra applicazione) che utilizzano la stessa libreria. Se si utilizza una libreria statica, una copia (che è circa della stessa dimensione della libreria condivisa [1]) verrà compilata in ciascuna. Questo è utile quando sei su una workstation PC. Ma lo sapevi. Stai lavorando con una libreria che viene utilizzata solo da un'applicazione.
[1] La differenza di memoria dei singoli file di libreria è ridotta. Le librerie condivise aggiungono un indice e una tabella dei simboli in modo che dlopen(3)
possa caricare la libreria. Indipendentemente dal fatto che ciò sia significativo dipenderà dal tuo caso d'uso; compilare per ciascuno e quindi confrontare le dimensioni per determinare quale è più piccolo in Flash. Dovrai eseguire e profilo per determinare quale consuma più RAM; dovrebbero essere simili ad eccezione del caricamento iniziale della libreria condivisa.
fonte
2011-10-19 13:21:29