Posiadam bibliotekę C++, która generuje znacznie większy kod, którego naprawdę oczekiwałbym za to, co robi. Z mniej niż 50 000 linii źródłowych otrzymuję obiekty współdzielone, które mają prawie 4 MB, a archiwa statyczne przesuwają 9. Jest to problematyczne zarówno dlatego, że biblioteki binarne są dość duże, i, o wiele gorsze, nawet proste aplikacje łączące się z nimi zwykle zyskują od 500 do 1000 KB w rozmiarze kodu. Kompilowanie biblioteki za pomocą flag takich jak -Os pomaga w tym, ale nie za bardzo.Jakie są niektóre techniki i narzędzia do profilowania nadmiernego rozmiaru kodu w aplikacjach C/C++?
Eksperymentowałem również z poleceniem GCC -frepo (pomimo tego, że cała dokumentacja, którą widziałem sugeruje, że w systemie Linux collect2 mimo wszystko scali zduplikowane szablony) i jawne tworzenie szablonów na szablonach, które wydawały się "prawdopodobnie" często duplikowane , ale bez żadnego rzeczywistego skutku w obu przypadkach. Oczywiście mówię "prawdopodobnie", ponieważ, jak w przypadku każdego rodzaju profilowania, ślepe zgadywanie, takie jak to, jest prawie zawsze błędne.
Czy jest jakieś narzędzie, które ułatwia profilowanie rozmiaru kodu lub w jakiś inny sposób mogę się dowiedzieć, co zajmuje tak dużo miejsca, lub, ogólniej, innych rzeczy, które powinienem wypróbować? Coś, co działa pod Linuksem byłoby idealne, ale wezmę to, co mogę dostać.
To nie jest "-W1", to "-Wl" –
@FX - Dzięki za spostrzeżenie. Naprawiłem to. –