Foreach vs For - Ki a gyorsabb?
Ha ki szeretném íratni egy n+1 elemű listának/halmaznak az elemeit, amik int típusúak, egy foreach ciklus vagy egy for lesz a gyorsabb, hatékonyabb?
Megj. A halmazok bizonyos nyelvekben csak 256 hosszúak lehetnek, így ki lehet az elemeket írni egy sima for-ral is, nem csak foreach-csel.
A foreach egy lokális változóba másolja az aktuális elemet, aminek plusz processzoridőt vesz igénybe, viszont a kiolvasása már gyorsabb. Emiatt ha lépésenként csak egyszer van szükséged az értékre, akkor valószínűleg a for, egyébként meg a foreach a gyorsabb.
Itt van példaprogram amivel letesztelheted: [link]
foreach előnye, hogy bizonyos nyelveknél az üres
halmaznál nem fut le, simán ráeresztheted, nem kell
előre tudnod a méretét (viszont a típusnak jónak
kell lennie), viszont fornál simán kiszaladhatsz az
indexxel. Kapsz egy új változót, amivel játszhatsz,
de az eredeti értékek nem változnak.
for előnye, hogy gyorsabb, illetve használhatod az
eredeti változót, tehát tudod módosítani cikluson
belül is az értékét, míg foreach-nél nem tudod,
épp melyik elemmel dolgozik, mert külön változóba
teszi.
Gyakorlatilag futásidőben nincs számottevő különbség,
amíg kis tömbökkel dolgozol, és nem 20 megás stringeket
hívsz meg foreach-el, itt már a változóba másolás ideje
mérhető.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!