Tuleeko nopeuseroja jos käyttää
perinteistä for-lausetta
(for to do )
verrattuna sitä for in (for in do)
lauseeseen?
Mitä etuja tuo for in do tarjoaa
Nopeuserot for
9
352
Vastaukset
- -for looppaus-
Noiden käyttötarkoitus ei ole varsinaisesti ihan sama, for to- on yleis käyttöinen, for in on lähinnä taulukoiden läpikäymiseen joka tuli D2005:sessa, ja joka vastaa pitkälle esim php:n foreach rakennetta.
- For in:llä?
Lähinnä kiinnostaa pystytäänkö tuolla
for in -rakenteella saamaan nopeus hyötyä verrattuna
vastaavaan for to -rakenteeseen.
(tuskin kovinkaan paljoa)
Eli kysy on lähinnä siitä pystyykö kääntäjä hyödyntämään jotain parempia assembler -käskyjä verrattuna for to-rakenteeseen - -for looppaus-
For in:llä? kirjoitti:
Lähinnä kiinnostaa pystytäänkö tuolla
for in -rakenteella saamaan nopeus hyötyä verrattuna
vastaavaan for to -rakenteeseen.
(tuskin kovinkaan paljoa)
Eli kysy on lähinnä siitä pystyykö kääntäjä hyödyntämään jotain parempia assembler -käskyjä verrattuna for to-rakenteeseenNo luultavasti jonkun verran nopeutuu kun kahlattava taulukkomainen tietomäärä ja indeksointi hoidetaan funktion sisäisesti, ainakin lähes varmuudella nopeammin kuin käyttäjän huonosti toteuttama perinteinen for to funktio.
Testaa itse, sehän ei ole vaikea homma esim Gettickcount -funktiolla. - to do in do
-for looppaus- kirjoitti:
No luultavasti jonkun verran nopeutuu kun kahlattava taulukkomainen tietomäärä ja indeksointi hoidetaan funktion sisäisesti, ainakin lähes varmuudella nopeammin kuin käyttäjän huonosti toteuttama perinteinen for to funktio.
Testaa itse, sehän ei ole vaikea homma esim Gettickcount -funktiolla.No minulla ei ole vielä tarpeeksi uutta Delphiä jotta voisin testata tuota.
- -for looppaus-
to do in do kirjoitti:
No minulla ei ole vielä tarpeeksi uutta Delphiä jotta voisin testata tuota.
Kuinka uus sen sitte pitäis olla kun toi on winapi funktio joka on ollut jo delphi 1:sestä käytössä, joskus esihistorialisella ajalla, for in funktio taas tuli vasta 2005 delphiin oliko toi nyt sitte delphi 10.
Näin
...
var alku, aika;
...
alku:= gettickcount;
//tee jotain mitattavaa tässä välissä
aika:=gettickcount-alku;
//aika on on nyt millisekunteja alusta - -for looppaus-
-for looppaus- kirjoitti:
Kuinka uus sen sitte pitäis olla kun toi on winapi funktio joka on ollut jo delphi 1:sestä käytössä, joskus esihistorialisella ajalla, for in funktio taas tuli vasta 2005 delphiin oliko toi nyt sitte delphi 10.
Näin
...
var alku, aika;
...
alku:= gettickcount;
//tee jotain mitattavaa tässä välissä
aika:=gettickcount-alku;
//aika on on nyt millisekunteja alustasiis
..
var alku, aika: cardinal;
.. - GetTickCount
-for looppaus- kirjoitti:
No luultavasti jonkun verran nopeutuu kun kahlattava taulukkomainen tietomäärä ja indeksointi hoidetaan funktion sisäisesti, ainakin lähes varmuudella nopeammin kuin käyttäjän huonosti toteuttama perinteinen for to funktio.
Testaa itse, sehän ei ole vaikea homma esim Gettickcount -funktiolla.GetTickCount -funktio löytyy Lazaruksestakin LCLIntf käännösyksiköstä (Siis Uses -lauseeseen pitää lisätä LCLIntf).
GetTickCount -funktio toimii siis myös muissakin käyttöjärjestelmissä kuin windows kuten esim. Linux:ssa - Todennäköisesti
-for looppaus- kirjoitti:
siis
..
var alku, aika: cardinal;
..Todennäköisesti hän tarkoittaa sellaista Delphiä josta puuttuu For in käsky mutta haluaa tietää sen nopeuden.
- Mika0800
GetTickCount kirjoitti:
GetTickCount -funktio löytyy Lazaruksestakin LCLIntf käännösyksiköstä (Siis Uses -lauseeseen pitää lisätä LCLIntf).
GetTickCount -funktio toimii siis myös muissakin käyttöjärjestelmissä kuin windows kuten esim. Linux:ssaLazarus ja GetTickCount
Lazaruksen windows -versiossa tuo varmasti toimiikin oikein.
mutta kokeilepa Lazaruksen linux -versiossa tätä:
OdotaKunnesKloOn_235959(); // tämä siis odottaa, kunnes kello on 23:59:59
T1 := GetTickCount;
TeeJotainJokaKestaa2300milliSekuntia;
T2 := GetTickCount;
dT := T2-T1;
Veikkaanpa, että Lazaruksen linuxversio joko:
a) antaa tulokseksi 2 sekuntia
b) antaa tulokseksi 3 sekuntia
c) antaa totaalisesti väärän tuloksen, kun hämääntyy pahasti vuorokauden vaihtumisesta.
Toinen, vielä pahemi testi:
T1 := GetTickCount;
TeeJotainJokaKestaa1Minuutti;
T2 := GetTickCount;
dT := T2-T1;
ja tuon 1 min aikana sitten vaihdat konsoliin, jossa olet valmiiksi root -oikeuksin sisällä, ja vaihat siellä koneen kellonajan toiseksi.
Veikkaanpa, että Lazaruksen linux -versio mokaa tässäkin.
Alkaisi olla korkea aika linuxinkin APIin lisätä ihan 100% aito GetTickCount, joka ei hämäänny sen paremmin keskiyön ylittämisestä kuin koneen kellonajan muuttamisestakaan.
Olen joskus itse koodannut linuxiin oman GetTickCount -funktion (sovellusohjelmnatasolla), mutta ei sekään täydellinen ole eikä voikaan olla, ilman kernel -ajuria.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Yritystuet 10 mrd. vuodessa, eli yrittäjäriski valtiolla kuten kommunismissa
Pelkästään Viking Linen viinanhakuristeilyitä sponsoroidaan 20 miljoonalla eurolla vuosittain. Dieselin verotukikin on566678- 575843
Sture Fjäder haluaa tuensaajien nimet julki
Kokoomuspoliitikko haluaa yli 800 euroa kuukaudessa tukia saavien nimet julki. Ehkä olisi syytä julkaista myös kuvat? h1135195En saa sua mielestäni vaikka tekisin mitä
Mikä tähän auttaa.. ei mikään. Edes aika. Kaivan sut kohta vaikka kivenkolosta että saan kysyä haluatko sinäkin💛163883Luotathan siihen tunteeseen, joka välillämme on?
Uskothan myös, että se kestää tämän? Kaipaan sinua valtavasti. Vielä tehdään yhdessä tästä jotain ihmeellistä ja kaunist443803Riikka on siis suomalaisille velkaa 84 mrd
Jos kauhukabinetti istuu vaalikauden loppuun. Keskimäärin yli 20 miljardia uutta velkaa rikkaiden veronalennuksiin jokai1323480Onnettomuus
Hukkajärventiellä kolaroi lavetti ja henkilöauto. Uutista ei missään! Hys hys ollaanko hiljaa tästäkin?53380Sanna on suomalaisille siis velkaa 24 mrd euroa
Muistanette vielä kuinka Italian remonttirahoja perusteltiin sillä, että italialaiset ostaa suomalaisilta paidatkin pääl1722945- 252759
Maahanmuuttajat torjuvat marjanpoiminnan - "emme ole rottia"
Ruotsalaisen journalistin selvitys paljasti, miksi maahanmuuttajat kieltäytyvät työstä. Taustalla vaikuttavat kulttuuris532614