Sisäinen silmukka - Inner loop

On tietokoneohjelmia , tärkeä muoto valvonta virtaus on silmukka , joka aiheuttaa lohko koodin suorittamisen useammin kuin kerran. Yleinen idiooma on, että silmukka on sisäkkäin toisen silmukan sisällä, sisällytettyyn silmukkaan kutsutaan yleisesti sisäiseksi silmukaksi . Silmukoita on kahta päätyyppiä ja ne voidaan sijoittaa toisiinsa mahdollisesti mihin tahansa syvyyteen tarpeen mukaan. Nämä kaksi tyyppiä ovat silmukalle ja taas silmukalle. Molemmat ovat hieman erilaisia, mutta ne voidaan vaihtaa keskenään. Tutkimus on osoittanut, että sisäisen silmukan sisältävän silmukan koko rakenteen suorituskyky on erilainen verrattuna silmukkaan, jossa ei ole sisäistä silmukkaa. Itse asiassa jopa kahden silmukan, joilla on erityyppinen sisäinen silmukka, suorituskyky, jossa toinen on for for -silmukka ja toinen while-silmukka, ovat erilaiset.

Havaittiin, että enemmän laskutoimituksia suoritetaan aikayksikköä kohden, kun sisäinen silmukka on mukana, kuin muutoin. Tämä tarkoittaa, että kun suoritettavien laskelmien määrä on sama, sisäisen silmukan omaava loppuu nopeammin kuin ilman sitä. Tämä on koneesta tai alustasta riippumaton silmukan optimointitekniikka, ja sitä havaittiin useilla testatuilla ohjelmointikielillä ja kääntäjillä tai tulkeilla. Sisäisen silmukan hetkellinen silmukka toimi huonosti ja toimi joissakin tapauksissa jopa hitaammin kuin silmukka ilman sisäistä silmukkaa. Kaksi alla olevaa esimerkkiä, jotka on kirjoitettu pythonissa, esittävät while-silmukan, jossa on sisäinen silmukka ja while-silmukka ilman sisäistä silmukkaa. Vaikka molemmilla on samat silmukan lopetusolosuhteet, ensimmäinen esimerkki valmistuu nopeammin silmukan sisäosan takia. Muuttuja internalmax on murto ensimmäisessä esimerkissä maxticketno- muuttujasta.

while ticketno * innermax < maxticketno:
    for j in range(0, innermax):
        if (ticketno * innermax + j) == jackpotno:
            return
    ticketno += 1
while ticketno < maxticketno:
    if ticketno == jackpotno:
        return
    ticketno += 1

Viitteet