🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #205415

Pętla FOR (w sam raz na poziom FIR'a)

#205415
From: slawek
Date: Sat, 27 Apr 2013 16:00
30 lines
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-mail

Show 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