Hirdetés
- Apple iPhone 17 Pro Max – fennsík
- Xiaomi 15T - reakció nélkül nincs egyensúly
- iPhone topik
- Android alkalmazások - szoftver kibeszélő topik
- Samsung Galaxy A56 - megbízható középszerűség
- Android 16-ra nyitott az egyik legmenőbb csukható
- Samsung Galaxy A52s 5G - jó S-tehetség
- Fotók, videók mobillal
- Vivo X200 Pro - a kétszázát!
- Yettel topik
Új hozzászólás Aktív témák
-
cucka
addikt
válasz
PumpkinSeed
#17229
üzenetére
A php-ban valóban lassúak a függvényhívások, de ez adottság, nem kell vele foglalkozni. Egy tíz meg százezer soros OOP kódhalmazban nem tudsz mit kezdeni ezzel. Ha elég hardkór vagy, itt elolvashatod, hogy miért van pontosan: [link]
Ha olyan szinten vagy, hogy ez a szűk keresztmetszet, akkor használj HHVM-et, de a PHP7-be igért JIT compiler is hozhat javulást. Vagy egyszerűen vegyél még szervert, olcsóbb, mint azért fizetni a programozót, hogy csökkentse a függvényhívások számát.
Arról nem is beszélve, hogy a jó minőségű kód egyik jellemzője, hogy a függvények elég rövidek és pontosan egy dolgot csinálnak. Szóval sok a függvényhívás és jó mély a stack. -
Sk8erPeter
nagyúr
válasz
PumpkinSeed
#17229
üzenetére
"Igen tudom, bár javasoltam egy alternatív megoldást a problémára."
Ami hibás.
Az str_split()-nek az egész tömböt adod át, nem indexelted. Egyébként van foreach-ciklus, ami ennél sokkal szebb kódot eredményez, és az ilyen jellegű indexeléssel sem kell foglalkoznod."Amúgy nem lehetséges, hogy néha az ilyen alternatív megoldás gyorsabb? Tegyük fel, hogy a kód
ugyan olyanugyanolyan hatékonysággal van megírva mint a függvényben, de mivel itt függvényhívás nélkül fut le, ezért valamivel gyorsabb."
Nem valószínű, mivel a PHP könyvtári függvényeit C-ben írják, aztán optimalizált kód lesz belőle a buildelés során, nagy eséllyel ez gyorsabban fog működni, mint a Te kódod, amit már PHP-ben írsz (a fenti kódodnál meg aztán végképp gyorsabban fog működni...
). Persze ettől még a különbséget nem biztos, hogy megérzed. (Na meg el lehet képzelni rossz implementációt is még a beépített függvényeknél is.)
Ha arra vagy kíváncsi, hogy azonos környezetben, azonos feltételekkel, ugyanolyan hatékonysággal van valóban megírva a kód, de még valaki hozzátesz egy függvényhívást is, akkor melyik lesz a győztes, akkor igen, jól sejted, ELMÉLETBEN az, amelyik nem teszi hozzá a függvényhívás overheadjét - a gyakorlat viszont megint más, mert ez már olyan minimális különbség, hogy nem fogod tudni mérni sem, hogy melyik a gyorsabb, sőt, aktuális szerverterheltségtől függően össze-vissza fog változni a különbség.
Szóval azon nem éri meg agyalni, hogy inkább a könyvtári függvényt használod, vagy feltalálod a spanyolviaszt.
Azon, hogy milyen overheadet teszel hozzá egy-egy függvényhívással, akkor éri meg agyalni, amikor pl. egy helyen ugyanazt az értéket kéred le többször is, tök feleslegesen. Rengetegen elkövetik azt a hibát, hogy egy értéket/referenciát/akármit eltárolhatnának egy változóban, és később felhasználhatnák, de ugyanazt a kódot leírják többször is (erre is vonatkozik a DRY (Don't Repeat Yourself) elv).
Na, kezdek elkalandozni, remélem, megválaszoltam a kérdésedet.
Új hozzászólás Aktív témák
- Sony MILC fényképezőgépcsalád
- Gitáros topic
- GoodSpeed: Ágymatrac keresési kálvária
- Elektromos autók - motorok
- iRacing.com - a legélethűbb -online- autós szimulátor bajnokság
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Tőzsde és gazdaság
- Kihúzhatja a gyufát a PC-s gyártóknál az érkező új Xbox
- Futás, futópályák
- Fejhallgató erősítő és DAC topik
- További aktív témák...
- Acer Predator Helios Neo16" QHD+ IPS i9-14900HX RTX 4070 32GB 1TB NVMe gar
- T14 Gen2i 14 FHD IPS i7-1185G7 16GB 512GB NVMe magyar vbill ujjolv gar
- Eladó Lenovo LOQ laptop I5, Rtx2050, 16gb ram, 512 m2 ssd. Garancia.
- LG 55" 4K UHD AI Smart tv GARANCIÁVAL
- Bontatlan Google Pixel 10, 12GB ram 256GB rom frost/lila
- Logitech Webkamera MeetUp 120 -os látótér, mikrofon, 4K Ultra HD
- Azonnali készpénzes AMD Radeon RX 5000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- REFURBISHED - DELL Thunderbolt Dock WD19TBS (210-AZBV)
- HIBÁTLAN iPhone 12 Mini 128GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3631,94% Akkumulátor
- Samsung UE75DU7172U 189 cm / 75 4K UHD Smart TV 6 hó garancia Házhozszállítás
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Az str_split()-nek az egész tömböt adod át, nem indexelted. Egyébként van foreach-ciklus, ami ennél sokkal szebb kódot eredményez, és az ilyen jellegű indexeléssel sem kell foglalkoznod.


