Kyseessä on siis C kieli. Onko mitään nopeus jne... eroa jos käyttää for tai while looppia?
Luuppi pyörii kymmeniä miljoonia kertoja.
While tai For mitä eroa?
6
733
Vastaukset
- c-kuru
while on nopiampi, koskapa se suorittaa lohkon yhden kerran tarkistammatta ehtoa....
Etu on mittava, jos silmukka pyörii kymmeniä moljoonia kertoaj ;)Siis mitä ihmettä ? Kyllä se while tarkistaa aina annetun ehdon ennen kuin lohkoa aletaan suorittamaan. Eihän siinä edes olisi mitään järkeä, jos while ei tarkistaisi sitä ehtoa joka kierroksella.
Sen sijaan do { ... } while(...) ajaa lohkon aina vähintään kerran, jos sitä tarkoitit.
- Unrolling
Riippuu kääntäjästä. Tietenkin käytät kaikkia optimointioptioita (heh) ja kehotat erityisesti unrollaamaan silmukat, mikä vaikkapa gcc:llä tapahtuu optiolla -funroll-loops (tjsp).
Sitten testaat, ja pidät nopeimman löytämäsi version koodissa. Niin se käy. Ei tuohon voi antaa yleistä vastausta, koska eri kääntäjä tekee eri ratkaisuja.
Arvaisin kyllä, että hyvä kääntäjä tuottaisi samaa koodia kummastakin silmukasta, jos logiikka on muuten vastaava. Vaan ei sitä tiedä, ellei kokeile.
Jos epäilet, että joudut käsin ohjelmoimaan, for-silmukka lienee helpompi unrollata käsin. Loop unrolling on hyvä googlehakutermi, jos et todellakaan tiedä msitä puhun. - hakoteillä
ohjelmissa ongelmat ovat ihan muualla kuin tuossa kysymyksessä.
- jep jep
pistä looppi laskemaan alaspäin
int loop = 500;
do {
} while ((--loop) != 0);
nollan tarkistaminen on helpompaa (etenkin -- jälkeen) kuin ehdon i < 500.
mutta kuten tuolla on mainittu kannataa viilata algorytmiä, tämä on pilkun viilausta. - Jokerer
Kiitoksia kaikille. Siis for ja while ei ole nopeus eikä muutakaan eroa ja on ihan makuasia kumpaa käyttää. En varsinaisesti kaipaa nopeutta ohjelmaani lisää, mutta koodaus vaiheessa on ihan sama kumman naputtelee joten aattelin vain varmistaa kumpaa kannattaa käyttää. Ja periaatteessa nopeutta ei ole koskaan likaa.
Ainakin PHP kanssa kehotetaan käyttää while for sijasta koska se on nopeempa isommissa loopeissa. Joskin PHP on PHP.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Suomen kansa haluaa Antti Lindtmanista pääministerin
Lindtman on miltei tuplasti suositumpi kuin etunimikaimansa Kaikkonen. Näin kertoo porvarimedian teettämä kysely. http2824751Vain 21% kannattaa Lindtmania pääministeriksi
se on selvästi vähemmän kuin puolueen kannatus, mites nyt noin?1353056Miksei Björn Wahlroos jaa rahaa köyhille?
Esimerkiksi Nordean tiloissa? Vai tuovatko ne köyhät hiekkaa marmorilattioille ja siksi ei pysty mursunviiksi pystyyn k502959Jouluksi miettimistä: kuka tai mikä valmistaa rahan?
Nyt kun on ollut vääntöä rahasta ja eritoten sen vähyydestä, niin olisi syytä uida rahan alkulähteille, eli mistä se syn281541Julkinen sektori on elänyt aivan liian leveästi yli varojensa!
Viimeisen 15 vuoden aikana julkisen puolen palkat ovat nousseet n. 40%, kun taas yksitysellä sektorilla vain n. 20%. En2271242- 471189
Yksikään persu ei ole saanut Nobelin palkintoa
Kertoo paljon persujen älyn puutteesta. Demareista mm. Ahtisaari on kyseisen palkinnon saanut.7986Emme koskaan keskustelleet kasvotusten syistä välirikollemme
Enkä voisi kertoa perimmäistä rehellistä syytä. Kerroin sinulle pintapuolisen ”paketin” ja otin tavallaan omalle vastuu58981Paskalaista valokuitulakiin
Nyt maksajiksi joutuvat kaupunkilaiset eivätkä mökkiensä ulkohuusseissa kakistelevat mummot. Nimittäin EU määrää jokais52969Miten antaa merkki hyvin eri ikäiselle miehelle, että kertoisi toiveensa ja ajatuksensa?
Olen pitkään pitänyt miehestä, joka myös varmasti minusta. Hän ei tosin kerro ihastumisesta, eli voi hyvin olla, että tu78961