nenezrana mozilla

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Čtvrtek Červen 7 23:05:36 CEST 2001


On Thu, 7 Jun 2001, Lubos Lunak wrote:

>  Jen tak pro ilustraci, podival jsem na to trochu podrobneji, a kazda KDE 
> aplikace alokuje minimalne 100KB ( spis jeste vic ) nesdilene pameti kvuli 
> kodu jako tohle :
> 
> const char* const texts[] = { "a", "b", "c" };

Tohle se musi relokovat. PIC = Position Independent Code. To znamena, ze
muze byt umisten na libovolne adrese. Cili mezi ruznymi procesy obecne
neplati, ze ty ukazatele jsou stejne.

Nicmene je pravda, ze vetsina programu nacita vicemene tu samou sadu
knihoven, a tudiz to vetsinou na tech samych adresach skonci. Dalo by se
udelat to, ze pro nejtypictejsi sestavy dynamickych knihoven pripravily
uz predem realokovane a slinkovane obrazy tech knihoven, ktere by pak
stacilo jen namapovat do pameti. (Zajimavost: kdyby se to povedlo, tak by
dokonce mohlo i byt nakonec vyhodnejsi vyrabet knihovny v non-PIC tvaru,
protoze PIC prece jen trochu zdrzuje.) Dokonce existuji uz existujici
prace na toto tema:

[1] M. N. Nelson, G. Hamilton: High Performance Dynamic Linking Through
Caching, Proc. of USENIX Summer Conf. 1993, pp. 253--265.
http://www.usenix.org/publications/library/proceedings/cinci93/nelson.html

[2] W. Wilson Ho, W.-C. Chang, L. H. Leung: Optimizing the Performance of
Dynamically-Linked Programs, Proc. of USENIX Technical Conf. 1995, 
pp. 225--233.
<http://www.usenix.org/publications/library/proceedings/neworl/ho.html>

Jenze to jako obvykle chce, aby to nekdo misto planeho remcani
naprogramoval. :)

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux