Szukam, co programista może zrobić w C, który może określić wydajność i/lub rozmiar wygenerowanego pliku obiektu.Praktyki kodowania C dla wydajności lub rozmiaru kodu - poza tym, co kompilator robi
Dla np,
1. Deklarowanie proste get/set funkcje jak inline może zwiększyć wydajność (kosztem większej footprint)
2. Do pętli, które nie korzystają z wartości samej zmiennej pętli, count do zera zamiast liczenia do pewnej wartości itd.
Wygląda na to, że kompilatory przeszły teraz do takiego poziomu, że "proste" sztuczki (jak dwa powyższe punkty) wcale nie są wymagane. Odpowiednie opcje podczas kompilacji i tak wykonają zadanie. Heck, widziałem także posty o tym, jak kompilatory obsługują rekurencję - to było bardzo interesujące! Więc co mamy zrobić na poziomie C? :)
Moje specyficzne środowisko to: GCC 4.3.3 ponownie ukierunkowane na architekturę ARM (v4). Ale reakcje na innych kompilatorach/procesorach są również mile widziane i będą nabierać ochoty.
PS: To podejście jest sprzeczne ze zwykłym "code first !, a następnie benchmarkem i ostatecznie optymalizacji" podejście.
Edit: Podobnie jak zdarza się tak, znalazłem podobne stanowisko po zaksięgowaniu pytanie: Should we still be optimizing "in the small"?
http://stackoverflow.com/questions/110684/what-coding-techniques-do-you-use-for-optimising-c-programs http://stackoverflow.com/questions/178045/when- powinieneś zacząć-optymalizacji-kod # 178079 http://stackoverflow.com/questions/242149/when-should-i-optimize –
Co jest nie tak ze zwykłym "kod pierwszy !, a następnie test porównawczy, a na końcu optymalizacji" podejście? –
Nic w tym złego - powinno to być sposób optymalizacji. Moją motywacją jest sprawdzenie, czy mogę zaimplementować narzędzie do refaktoryzacji kodu (po profilowaniu), aby pomóc programistce szybko zmienić wydajność i/lub obszar. Wyobraź sobie plugin Eclipse (lub skrypt vim), który podkreśla pętle i daje opcje do powiedzenia, rozwinąć je lub zmienić wewnętrzną i zewnętrzną pętlę. Powinienem to wyjaśnić w poście, przepraszam za to. Dzięki za linki! –