vložil Radek Červinka
30. listopadu 2009 23:10
U větších projektů se vyplatí získat informaci o souborech, které jsou skutečně používány.
Pokud je váš program déle vyvíjen tak se občas stane, že si do zdrojového kódu zavedete zdrojovou jednotku, která se v dalším vývoji stane nepotřebnou (např. zákazník si přál funkcionalitu programu napsat jiným způsobem) a prostě zapomenete zdrojový kód odstranit (nebo vás na projektu prostě maká více a neznáte do detailů každý kousek).
Linker Delphi je sice inteligentní a do výsledného spustitelného souboru přilinkuje jen to co je opravdu voláno, ale je tu malé ale. Součástí každé jednotky může být např. sekce initialization, která může obsahovat kód a tu linker nemůže ostranit. A podobné to je i v několika jiných situacích. To co je skutečně vloženo do výsledné binárky je symbolizováno tečkami vlevo po kompilaci. Ale kontrolovat to jednotku po jednotce je nesmysl.
Řešení je celkem jednoduché. Během překladu může linker (pokud mu to řeknete) vygenerovat map soubor. Jedná se o informaci kde ve výsledném souboru je který kód uložen. A pokud použije příslušný nástroj, který výstup přežvýká, dostanete velmi slušnou informaci co je ve výsledném exe a kolik to zabírá (třeba jen na úrovni jednotek).
Jedním z pěkných nástrojů je MapFileStats.
Program nejen ukazuje, které soubory jsou nakonec použity, ale i kolik byte ve výsledku zabírají (včetně velikosti DFM, pokud máte dobře cestu). Malý program, ale užitečný.