Thread View: pl.comp.lang.c
2 messages
2 total messages
Started by Borneq
Wed, 26 Aug 2020 19:14
[optymalizacja] Oto dlaczego kod może jeszcze wolno działać
Author: Borneq
Date: Wed, 26 Aug 2020 19:14
Date: Wed, 26 Aug 2020 19:14
12 lines
1705 bytes
1705 bytes
Po restrukturyzacji kodu, zaczał działać 2 razy wolniej. Okazało się że: - najczęściej była wolana mała metoda, milardy razy, składała się tylko z jednej linii złamanej w dwa wiersze. - bardzo wiele razy wołana, miliardy dla niedługiego czasu działania programu. - nie można było jej zrobić inline, a przedtem można było: dlatego że była w module tak jak i przedtem utils.cpp (wykorzytywana pezez dwie klasy), natomiast jej metoda wołająca była juz przeniesiona do klasy. Przeniosłem wołającą do tego samego pliku. Niby ten sam kod, a mógłbym nie zauważyć, gdybym nie porównał z czasem przed restrukturyzacją kodu.
Re: [optymalizacja] Oto dlaczego kod może jeszcze wolno działać
Author: Maciek Godek
Date: Thu, 27 Aug 2020 08:00
Date: Thu, 27 Aug 2020 08:00
19 lines
2604 bytes
2604 bytes
W dniu środa, 26 sierpnia 2020 21:14:24 UTC+2 użytkownik Borneq napisał: > Po restrukturyzacji kodu, zaczał działać 2 razy wolniej. > Okazało się że: > - najczęściej była wolana mała metoda, milardy razy, składała się tylko > z jednej linii złamanej w dwa wiersze. > - bardzo wiele razy wołana, miliardy dla niedługiego czasu działania > programu. > - nie można było jej zrobić inline, a przedtem można było: > dlatego że była w module tak jak i przedtem utils.cpp (wykorzytywana > pezez dwie klasy), natomiast jej metoda wołająca była juz przeniesiona > do klasy. Przeniosłem wołającą do tego samego pliku. > Niby ten sam kod, a mógłbym nie zauważyć, gdybym nie porównał z czasem > przed restrukturyzacją kodu. Jeżeli używasz GCC albo clang, spróbuj dodać opcję -flto do kompilacji i zobacz, czy to pomaga (daj znać). Ponadto, jeżeli chcesz robić pomiary i korzystasz z clang, możesz spróbować skorzystać z pluginu "stabilizer". Jego założenia są wyjaśnione w tej prezentacji, do której link kiedyś tu wklejałem: https://www.youtube.com/watch?v=r-TLSBdHe1A
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads