Z tego co mi się wydaje to jak JVM widzi pętlę od 0 do N, gdzie N jest rozmiarem tablicy, to optymalizuje to w taki sposób że nie sprawdza czy wyszliśmy poza tablicę, w tym "triku" JVM nie może zastosować takiej optymalizacji więc tak czy inaczej będzie sprawdzać czy i < N w każdym odwołaniu do tablica[i].
@Radeg90: @Furtkiewicz: Może to się bierze z assemblera. Tam to ma faktyczne zastosowanie. Jeżeli masz iterację do zera, to masz jeden rejestr mniej w programie i wykonujesz warunkowy skok gdy iterator == 0. Gdy masz iterację do jakiejś wartości to w assemblerze musisz za każdym razem odejmować od i liczbę N i sprawdzać czy wynik jest równy 0. Więc iterując do 0 oszczędzamy dodatkowy rejestr (nie musimy przechowywać
@mastermah: Już się raz spotkałem z wykorzystaniem bloku try / catch do przeprowadzenia procesu biznesowego. Aplikacja cyklicznie wchodzila i wychodzila z folderow zamieszczajac odpowiednie pliki. Jesli na poczatku wpadla w catch, tzn. ze byl to folder nadrzedny i odsylala do jakichs tam operacji. Mniej wiecej cos takiego. To jest przeciez anywzorzec i choroba umyslowa.
@Furtkiewicz: @Radeg90: @WhirPool: Iterowanie po tablicy do tyłu jest o wiele, wiele gorsze od iterowania do przodu, bo cały system cache oczekuje dostępów do przodu. To może być nawet o rząd wielkości wolniejsze.
via https://www.facebook.com/trolololodev/photos/a.384626621601598.91987.384620181602242/1205531046177814/?type=3&__mref=message_bubble
źródło: comment_k8jPTMPBuu3Y5x1sYfJt6YczT8rdNgYH.jpg
PobierzKomentarz usunięty przez autora
@Radeg90: @WhirPool:
Iterowanie po tablicy do tyłu jest o wiele, wiele gorsze od iterowania do przodu, bo cały system cache oczekuje dostępów do przodu. To może być nawet o rząd wielkości wolniejsze.