Widziałem kilka pytań dotyczących wykrywania niepotrzebnych plików #include w projekcie C++. To pytanie często mnie intrygowało, ale nigdy nie znalazłem satysfakcjonującej odpowiedzi.Czy niepotrzebne są dodatkowe pliki narzutów?
Jeśli są jakieś pliki nagłówkowe, które nie są używane w projekcie C++, czy to obciążenie? Rozumiem, że oznacza to, że przed kompilacją zawartość wszystkich plików nagłówkowych zostałaby skopiowana do dołączonych plików źródłowych, co spowodowałoby niepotrzebną kompilację.
Jak daleko rozlewa się ten rodzaj nakładów na skompilowane pliki obiektów i pliki binarne?
kompilatory nie są w stanie wykonać pewne optymalizacje, aby upewnić się, że ten rodzaj narzutu nie są przesyłane do otrzymanych plików obiektowych i plików binarnych?
Biorąc pod uwagę fakt, że prawdopodobnie nie wiem nic o optymalizacji kompilatora, nadal chcę o to zapytać, na wypadek, gdyby istniała odpowiedź.
Jako programista, który wykorzystuje szeroką gamę C++ bibliotek dla jego pracy, jaki rodzaj praktyk programowania powinien śledzę zachować unikając takich kosztów ogólnych? Czy dokładne zapoznanie się z każdą biblioteką działa w jedyny sposób?
To zależy od zawartości plików dołączanych. Deklaracje struktury nie powodują żadnych narzutów środowiska wykonawczego. Zewnętrzne deklaracje zmiennych do. – Barmar
Zależności boczne na bok, niepotrzebne obejmują wydłużają czas kompilacji, co w przypadku dużych projektów już zajmuje dużo czasu (rząd wielkości - godzin) – CoryKramer
@Cyber Jeśli zajmuje to już godziny, kolejne 30 sekund tutaj lub nie ma zamiaru duża różnica. – Barmar