🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by Borneq Wed, 26 Aug 2020 19:14
[optymalizacja] Oto dlaczego kod może jeszcze wolno działać
#310262
Author: Borneq
Date: Wed, 26 Aug 2020 19:14
12 lines
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ć
#310263
Author: Maciek Godek
Date: Thu, 27 Aug 2020 08:00
19 lines
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