Dynamisk Linking vs. Statisk Linking

I programvareutvikling, er et bibliotek en samling av verktøy eller ressurser som brukes til å lage et program. Disse ressursene kan omfatte tidligere skrevet kode, subrutiner, klasser, verdier eller spesifikasjoner. Under kompilering, en link redaktør kjent som en linker fyller program bibliotek referanser og kombinerer objekt moduler i programmet som skaper en kjørbar fil. Typisk lenking gjøres på en av to stiler - statiske og dynamiske. Hver har sine fordeler og ulemper.

bibliotek Linking

Den primære forskjellen mellom de to knytte metoder er hvordan biblioteket er knyttet til den kjørbare filen. I statisk linking, er alle nødvendige bibliotekrutiner kopiert direkte inn i programmets kjørbare fil. Filen er helt selvforsynt og krever ingen ekstra ressurser bibliotek å starte. I dynamisk lenking, er referanser til en delbar biblioteket er lenket inn i kjørbart program i stedet, og et eget bibliotek lenker nødvendige rutiner ved oppstart.

Filstørrelse

Programmer med statisk linking tendens til å kreve mer diskplass enn dynamisk lenkede programmer fordi alle bibliotek referanser er direkte kodet inn i kjørbar fil. I et dynamisk system, er biblioteket et separat fil som lastes parallelt med den kjørbare filen. Med dataene ikke direkte en del av programmet, er totale størrelsen programfil redusert.

Flere programmer vs selvforsynt

Statisk linket programmer er helt selvstendig, og krever ingen ekstra ressurser til å være funksjonell hvis de flyttes til en ny datamaskin. Men hvis flere programmer som bruker samme bibliotek referansene er statisk linket, har hvert program å ha sine egne sett av bibliotek referanser kodet inn i den. Dynamisk lenking krever ekstern biblioteket til funksjon, noe som krever både programmet og biblioteket skal transporteres for å fungere skikkelig. Imidlertid kan flere programmer som benytter det samme bibliotek være knyttet til det samme bibliotek. Dette kan redusere den totale bruken av diskplass, som et enkelt bibliotek kan betjene mange programmer som ellers ville trenge sine egne biblioteker separat kodet inn i dem.

Legge Times

Fordi alt en statisk linket program må kodes rett inn i det, statiske programmer lastes mye raskere enn sine dynamiske kolleger. Dynamisk lenkede programmer trenger å laste opp biblioteket og ringe opp informasjon fra det som selve programmet laster, i stedet for en rett last som er mulig i statisk linking.

Minnebruk

Når du kjører en enkelt prosess, kan statisk linking bruker mindre minne fordi alt masse på en gang. Det er ingen egen fil som må løpe for å starte opp programmet. Når imidlertid antall prosesser øker, blir det motsatte er sant. Når du kjører flere prosesser, har hver statisk linket prosess å kjøre individuelt og kaller på det er kodet ressurser. En serie med programmer som er knyttet til et enkelt bibliotek behøver bare å trekke på det enkelte bibliotek, begrense mengden av data som trengs for å laste inn for å kjøre prosessen og i stor grad redusere mengden av minne som brukes.