• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Dlaczego optymalizacja GCC spowalnia STL algorithms?

VPS Starter Arubacloud
0 głosów
186 wizyt
pytanie zadane 15 marca 2019 w C i C++ przez Hiskiel Pasjonat (22,830 p.)
zamknięte 15 marca 2019 przez Hiskiel

Cześć.

Czytając to można zauważyć, że bez optymalizacja szybkość wykonywania każdej operacji w przypadku STL jest za każdym razem szybsza od SOI czy ranges, jednak gdy w przypadku GCC użyjemy optymalizacji (choćby 1 poziomu, to szybkość diametralnie się zwiększa i wygrywają zewnętrzne biblioteki (choć ranges chyba jest w standardzie, ale dziwnie to wygląda). Dlaczego ta zmiana jest na złe, choć jest to optymalizacja, a autora to nie dziwi (tak, jakby tak właśnie powinno być)? 

 

komentarz zamknięcia: Stupid me.
komentarz 15 marca 2019 przez adrian17 Ekspert (344,100 p.)
Gdzie widzisz że spowalnia? Ja na oko widzę że optymalizacja wszędzie pomaga, tylko w niektórych przypadkach jedna biblioteka zyskuje bardziej niż inna.
komentarz 15 marca 2019 przez Hiskiel Pasjonat (22,830 p.)

"ratio CPU time / Noop time
Lower is faster"

komentarz 15 marca 2019 przez niezalogowany
@Hiskiel chodzi Ci o różnice pomiędzy O2 i O3 na pierwszych dwóch wykresach czy o to, że słupki są nagle wyższe (przynajmniej tak bym to dosłownie rozumiał sugerując się tylko tytułem)? Spróbuj wytłumaczyć o co chodzi na konkretnym przykładzie.
komentarz 15 marca 2019 przez Hiskiel Pasjonat (22,830 p.)
Nie rozumiem, czego nie rozumiecie.. Są pokazane 4 wykresy z każdych algorytmów dla GCC - z optymalizacją 0,1,2 i 3. Bez optymalizacji słupek pokazujący szybkość dla STL jest najmniejszy, za to z optymalizacją słupki nagle rosną i STL nagle wykonuje się kilka razy wolniej. Spójrz tylko na podlinkowany artykuł.
2
komentarz 15 marca 2019 przez niezalogowany
@Hiskiel porównaj wartości na przedziałkach.
komentarz 15 marca 2019 przez Hiskiel Pasjonat (22,830 p.)
Nie było tematu, dzięki.
komentarz 15 marca 2019 przez niezalogowany
Ok każdy może się pomylić. Tak na marginesie dodam, że czasami O2 może być trochę szybsze od O3, Skuteczność optymalizacji jest zależna od procesora. Niektóre instrukcje mogą być dla jednych bardziej skuteczne, a inne mniej. Zazwyczaj twórcy kompilatorów starają się znaleźć złoty środek, ale nie można dogodzić każdemu.

Podobne pytania

0 głosów
2 odpowiedzi 477 wizyt
pytanie zadane 25 listopada 2019 w C i C++ przez SimiVoid Pasjonat (19,790 p.)
0 głosów
1 odpowiedź 70 wizyt
pytanie zadane 7 listopada 2020 w C i C++ przez TOWaD Mądrala (5,700 p.)
0 głosów
0 odpowiedzi 123 wizyt
pytanie zadane 7 września 2019 w C i C++ przez niezalogowany

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...