Aktywne Wpisy
FeniFiker +1
Tak czytam sobie stare wpisy i widzę że jest tutaj odwieczny problem z nazewnictwem tego oto przedmiotu.. #pytanie #problemypierwszegoswiata #ciekawostki
![FeniFiker - Tak czytam sobie stare wpisy i widzę że jest tutaj odwieczny problem z na...](https://wykop.pl/cdn/c3201142/0b82d8f107e412f2841e64cbabf154a6c0ad7ef1e8da65f0a9597bf61986c372,w150.png)
źródło: IMG_0286
PobierzJak mówi się u was na ten przedmiot?
- Zastróżka 9.5% (10)
- Strugawka 53.3% (56)
- Ostrzelec 23.8% (25)
- Ostrzyczka 13.3% (14)
![nobody_here](https://wykop.pl/cdn/c3397992/nobody_here_I18cdpktHF,q60.jpg)
nobody_here +77
#wypiekmobilny dobra mozna odinstalować
![nobody_here - #wypiekmobilny dobra mozna odinstalować](https://wykop.pl/cdn/c3201142/3bfc6a477690927ef4533f3edb149789a8e01be1e1848039ec1dc096b04ac8cf,w150.jpg?author=nobody_here&auth=5d8958484f17e0915d66a7eeb6183e08)
źródło: 1000010638
Pobierz
Na p0lskich uczelniach bez zmian...
źródło: comment_o3eMKuQq6XOczV2mO8hBTrGnIO5bJG4J.jpg
PobierzA ludzie z własnej woli idą się tam 'szkolić', jakie to jest smutne!
Imo "zmniejszenie liczby wykonań pętli" jest tutaj najszczerszym złotem ( ͡° ͜ʖ ͡°)
Wyjaśnić nieobeznanym dlaczego to jest złe :>
Jedyne co, to ze wszystkie książki do programowania rzeczywiście zakładają iterowanie OD zera... a tutaj widzę coś nowego xD
Komentarz usunięty przez autora
Mam dziwne przeczucie, że to nie jest jedyne złoto, jakie się tam znajduje ( ͡° ͜ʖ ͡°)
To może ja wytłumaczę. Po pierwsze przy optymalizowaniu wydajności kodu trzeba zawsze zadać sobie pytanie: czy warto? W większości przypadków odpowiedź na to pytanie brzmi "nie", ponieważ w dzisiejszych czasach moc obliczeniowa komputerów jest niewyobrażalnie tania, a z kolei praca programistów jest bardzo droga. Kod nie jest po to, żeby go napisać i zapomnieć -- po jego napisaniu przez kilka kolejnych lat, co jakiś czas jakiś programista (zapewne sowicie opłacany) będzie go czytać, refaktorować, debugować. Zatem w 99% przypadków czytelność jest preferowana ponad wydajność. Zwiększając czytelność oszczędzasz czas następnym programistom patrzącym na ten kod, a to jest zasób dużo cenniejszy niż te nanosekundy czasu działania programu, które zyskasz stosując jakieś dziwne nieczytelne triki optymalizacyjne.
A jeśli chodzi o same triki konkretnie:
1. Nie daje nic (kompilator Javy sam jest w stanie zrobić tę
@ni0bi: pewnie chodzi o to, że na x86 jest instrukcja loop, która decrementuje ecx i skacze jeśli nie jest zerem i domniemywa się, że jvm pod spodem tak będie robić (czyli masz petlę w jednej instrukcji)
@Zelber: przykład jest może rzeczywiście źle dobrany, ale unrolling pętli jest dobrze znanym sposobem optymalizacji. Wieć nie do końca jest się z czego śmiać tutaj.
https://en.wikipedia.org/wiki/Loop_unrolling <-- tutaj wikipedia nawet bardzo podobny przykład podaje
2.) Czytelność kodu to jedno.
Do tego:
-Ten "sposób" przestanie działać np w przypadku gdy chcemy mieć np i<2137 (liczba pierwsza).
-Co w wypadku gdy nasze i nie jest stałe i nie znamy jego wartości?.
-Technicznie rzecz biorąc idąc tą logiką jaki jest sens ograniczenie tego do 5
@InformacjaNieprawdziwaCCCLVIII: nie do końca masz rację
https://en.wikipedia.org/wiki/Loop_unrolling#Simple_manual_example_in_C
Co do pierwszego akapitu to jak najbardziej rozumiem... kiedyś jak komputery operowały na znacznie mniejszej pamięci to każda linijka się liczyła... teraz chill
Co do punktów to dopiero teraz zauważyłem ten bezsensowny j+= 10 powtórzone trzy razy Przy zmniejszonym i <15 do i<5. O co chodziło autorowi? XD
Poza tym widzę niekonsekwentność u autora slajdu. Mówi, żeby iterowac DO zera... a wszędzie indziej daje OD Zera xD