Article View: pl.comp.programming
Article #205415Pętla FOR (w sam raz na poziom FIR'a)
From: slawek
Date: Sat, 27 Apr 2013 16:00
Date: Sat, 27 Apr 2013 16:00
30 lines
2031 bytes
2031 bytes
Takie głupie pytanie - która pętla jest lepsza: 1: for i = 0 to n do call subroutine(); 2: for i = n downto 0 call subroutine(); Na zdrowy rozum, obie są takie same. Ale chwila - pierwsza rozwija się (przynajmniej w niektórych językach) do cośtam-cośtam-cośtam [zmniejsz rejestr o 1] [porównaj rejestr z wartością n] [podejmij decyzję o kontynuacji] natomiast druga do cośtam-cośtam-cośtam [zmniejsz rejestr o 1] [podejmij decyzję o kontynuacji] gdyż znakomita większość CPU nie potrzebuje porównania z zerem po dekrementacji (ZF się ustawia sama). Czyli druga postać pętli działa o JEDNĄ INSTRUKCJĘ CPU NA PĘTLĘ SZYBCIEJ - *WOW* A teraz bez kłamania - kto tak robi? Wszędzie jak pamiętam pętle są robione "w górę" nawet jak mogą być "w dół", np. przy przeglądaniu po kolei wszystkich kontrolek itp. (Nota Benka - optymalizacja nie bardzo coś dać może, bo czasami trudno odgadnąć, że n nie zmieni się wewnątrz pętli.) :)
Technical Details
Message-ID:
<517bf604$0$1250$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!eu.feeder.erje.net!zen.net.uk!dedekind.zen.co.uk!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!eu.feeder.erje.net!zen.net.uk!dedekind.zen.co.uk!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail From: "slawek" <human@site.pl> Newsgroups: pl.comp.programming Subject: Pętla FOR (w sam raz na poziom FIR'a) Date: Sat, 27 Apr 2013 18:00:03 +0200 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal Importance: Normal X-Newsreader: Microsoft Windows Live Mail 15.4.3555.308 X-MimeOLE: Produced By Microsoft MimeOLE V15.4.3555.308 Lines: 31 Message-ID: <517bf604$0$1250$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 62.69.230.89 X-Trace: 1367078404 unt-rea-a-02.news.neostrada.pl 1250 62.69.230.89:49365 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit