Szybko, szybciej, jeszcze szybciej |
Wpisany przez Patryk yarpo Jar | |||
sobota, 02 stycznia 2010 18:27 | |||
Czasem tak się zdarza, że mój program w języku C nie działa wystarczająco szybko. Właściwie zdarza się tak prawie zawsze ;-) Po tweakowaniu algorytmu i dodaniu opcji -O2/-O3 w kompilatorze dalej jest za wolno. Nie musi to jeszcze oznaczać konieczności zamiany maszyny na mocniejszą lub pisania wstawek asemblerowych. Szczególnie, jeśli NIE potrzebujesz zgodności z normami ISO i zgadzasz się na … pewne błędy. Tajna brońKompilator GCC ma w swoim arsenale opcję -ffast-math. Pozwala ona m.in. na następujące (nielegalne!) optymalizacje:
W związku z powyższym każde użycie -ffast-math może powodować, że aplikacja będzie dawała mniej dokładne (lub wprost: złe) wyniki, a w skrajnym wypadku się wysypie: z tego powodu rzeczona opcja nie jest domyślnie wywoływana przez -O ani nawet przez -O3. Autorem artykułu jest Maciej Kamiński.
|