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

Czy ilość kodu ma wpływ na wydajność?

VPS Starter Arubacloud
+2 głosów
754 wizyt
pytanie zadane 31 grudnia 2016 w C i C++ przez DamianW Bywalec (2,080 p.)

Witam, mam takie pytanie. Czy ilość napisanego kodu ma znaczny wpływ na wydajność?

Mam taki problem ,że ze dosłownie z strachem podchodzę do programowania w C++  ze względu na to ,że mój program będzie po prostu zbyt mało wydajny (nawet najprostszy) przez co ciągle stosuję wskazniki i else if przy czym ciągle się staram upychać wszystko w jedną pętlę .

Czy takie odczucie jest normalne na moim etapie nauki C++?
Znacie może jakieś jeszcze sposoby zachowania większej wydajności przy prostych instrukcjach ?
Z góry dziękuję za odpowiedz :D

5 odpowiedzi

+5 głosów
odpowiedź 31 grudnia 2016 przez Dash Nałogowiec (29,650 p.)
wybrane 31 grudnia 2016 przez DamianW
 
Najlepsza
Tak, ilość kodu ma wpływ na wydajność... ale tylko w niektórych językach. Chodzi tutaj o języki skryptowe, gdzie w pewnych sytuacjach ilość linijek kodu może wydłużyć proces jego interpretacji i wykonania. Ale to zjawisko nie występuje zawsze, a jego wpływ jest dosyć marginalny.

W przypadku języków kompilowanych, takich jak C++, ilość znaków które użyjesz, nie ma żadnego wpływu na ostateczną wydajność programu. To co ty wyklepiesz, jest przez kompilator sprowadzane do języka maszynowego. Wydajność programu zależy od tego ile operacji wykonuje. Dobrze jest mieć ogólne pojęcie które operacje są bardziej, a które mniej czasochłonne dla procesora. If-elsami się nie przejmuj, naprawdę, są praktycznie niezauważalne. Tak samo sama pętla nie ma praktycznie żadnego wpływu na wydajność. Ciężko są za to operacje takie jak np. porównywanie stringów, operacje na plikach, operacje na grafikach itd.. Poczytaj o desasemblacji, jest możliwość looknięcia jak twój kod wygląda po kompilacji, przy podstawowej wiedzy z asma, będziesz w stanie realnie zobaczyć wydajność swojego programu (przynajmniej do póki piszesz podstawowe programy).

NAJWAŻNIEJSZE. Przedwczesna optymalizacja jest zła... baaardzo zła. Nie rób tego, nie warto. Dla dzisiejszych komputerów, skomplikowane operacje matematyczne wykonywane na tysiącach elementów nie są niczym niezwykłym. Czas programisty jest cenniejszy niż czas procesora. Dodatkowo tracisz niepotrzebnie nerwy, oraz narażasz się na umieszczanie w kodzie błędów. Podejmowanie takiego ryzyka dla kilku milisekund nie jest warte. Ale spokojnie, większość przez to przechodzi, wyleczysz się :).
+2 głosów
odpowiedź 31 grudnia 2016 przez criss Mędrzec (172,590 p.)

Też tak miałem i chyba nadal mam. Ale do pewnego momentu, myśle, że to raczej zaleta.

Znacie może jakieś jeszcze sposoby zachowania większej wydajności przy prostych instrukcjach ? 

 Musiał byś podać chociaż jakiś "zakres tematyczny", a najlepiej przykład odnośnie którego masz wątpliwości.

komentarz 31 grudnia 2016 przez DamianW Bywalec (2,080 p.)
Wskazniki najbardziej, ale pętle jak i instrukcje warunkowe także mile widziane :D
komentarz 1 stycznia 2017 przez criss Mędrzec (172,590 p.)
To są tak podstawowe sprawy, że optymalizacje kompilatora mogą tu sobie pozwalać na cuda. Myśle, że nie warto nawet tykać tematu, a już na pewno nie bez znajomości "magii kompilatora" :D
+2 głosów
odpowiedź 31 grudnia 2016 przez maly Nałogowiec (37,190 p.)

Czy ilość napisanego kodu ma znaczny wpływ na wydajność?

Tak, ilość kodu ma wpływ na wydajność jednak w pewnych wypadkach czas wykonywania zmaleje a w innych wzrośnie.

przez co ciągle stosuję wskazniki i else if przy czym ciągle się staram upychać wszystko w jedną pętlę

Czyli nie masz pojęcia o technikach optymalizacji.

Czy takie odczucie jest normalne na moim etapie nauki C++?

Niewiem, czas wykonywania mojego kodu był zawsze na akceptowalnym poziomie więc nie miałem takich dylematów.

Znacie może jakieś jeszcze sposoby zachowania większej wydajności przy prostych instrukcjach ?

Przede wszystkim optymalizuje się algorytmy a nie wykorzystane w nich instrukcje.

 

Jesteś początkujący więc ucz się programować a nie bezsensownie optymalizować.

+2 głosów
odpowiedź 31 grudnia 2016 przez operator Stary wyjadacz (10,920 p.)
Nie ma zupełnie. Należy tylko pamiętać o jak najniższej złożoności algorytmu.
2
komentarz 31 grudnia 2016 przez developer Użytkownik (860 p.)
oczywiście to prawda. Dodam tylko, ze nie należy przesadzać z tym brakiem złożoności.... nie należy też zbytnio rozwlekać kodu. Innymi słowy - jakto mawia mój szef - należy wyważyć kod. Ani zbyt komplikować, ani zbyt upraszczać.
+1 głos
odpowiedź 31 grudnia 2016 przez programmero Bywalec (2,420 p.)
Optymalizacja kodu może polegać na kilku sztuczkach jednak większość z nich jest robiona przez kompilator. Z takich ogólnych to dobór odpowiednich struktur danych oraz typów. Zamiast używać typu int można użyć short, double zamienić na float itp. Przy strukturach dynamicznych zastanów się czy np potrzebujesz stosować listę dwukierunkową albo najlepiej czy w ogóle potrzebujesz przechowywać dane w liście a nie powiedzmy zwykłej tablicy. Dobór algorytmów również ma znaczenie.

Podobne pytania

+3 głosów
3 odpowiedzi 332 wizyt
pytanie zadane 2 lipca 2018 w Offtop przez karnowicki Nowicjusz (150 p.)
0 głosów
2 odpowiedzi 503 wizyt

92,770 zapytań

141,695 odpowiedzi

320,518 komentarzy

62,107 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

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!

...