Biblioteca informàtica: diferència entre les revisions
Contingut suprimit Contingut afegit
Cap resum de modificació |
m Corregit: la -> l'[[aleatorització |
||
Línia 48:
No obstant això, en la pràctica, en molts dels sistemes les programoteques no canvien freqüentment. Per tant, és possible calcular una adreça de càrrega probable per a cada programoteca compartida en el sistema abans que sigui utilitzada, i emmagatzemar aquesta informació a programoteques i executables. Si cada programoteca que és carregada és tractada així, llavors cadascuna d'elles serà carregada en direccions predeterminades, el que accelera el procés d'enllaç dinàmic. Aquesta optimització es coneix com [[Prebinding]] en Mac OS X i [[Prelinking]] a Linux.
Els desavantatges d'aquesta tècnica són el temps requerit de càlcul preliminar de les adreces cada vegada que les programoteques compartides canvien, la incapacitat d'utilitzar tècniques com
Un antic mètode era examinar el programa en temps de càrrega. Una vegada que totes les programoteques fossin carregades, es reemplaçaven totes les referències a dades a les programoteques, amb punters a localitats de memòria apropiats. Al Windows 3.1 (i en alguns sistemes encastats com les calculadores Texas Instruments), les referències eren manejades com a llistes lligades, permetent la fàcil enumeració i reemplaçament. Ara, la majoria de les programoteques dinàmiques lliguen una taula de símbols amb adreces en blanc dins del programa en temps de compilació. Totes les referències a codis o dades a la programoteca passen a través d'aquesta taula. En temps de càrrega, la taula és modificada amb la direcció de les dades/codi pel linker. Aquest procés és lent i afecta significativament la velocitat dels programes que diuen contínuament a altres programes, tal com alguns ''scripts'' de ''shell''.
|