Kan deze code nog sneller
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Ik heb al haakjes en accolades weggehaald en puntjes in komma's veranderd maar ik wil weten of dit scriptje nog sneller kan?
EDIT:
Ben ook in de war met de haakjes eigenlijk.
Volgens anderen met sneller en zonder haakjes sneller.
Wat is het nou?
Gewijzigd op 15/05/2011 11:00:11 door Maarten PHP
Pim - op 15/05/2011 11:37:23:
Lijkt mij ook :p
Die if kan er natuurlijk ook uit.
++$i schijnt trouwens nog wat sneller te zijn dan $i++
Intuïtief lijkt het me dat < sneller is dan <=, maar daar heb ik nog nooit iemand over gehoord.
Gewijzigd op 15/05/2011 11:40:55 door Pim -
< = lager dan 100
<= = lager gelijk aan 100
< maakt het niet sneller dan <=
Laten we aannemen dat variabele Y de waarde 1 heeft. In de opdracht X = ++Y krijgt X dan de waarde 2: de waarde van Y wordt eerst met een verhoogd, en vervolgens wordt het resultaat aan X toegekend. In de opdracht X = Y++ daarentegen krijgt X de waarde 1: de waarde van Y wordt aan X toegekend, en pas daarna wordt de waarde van Y met een verhoogd! Iets soortgelijks geldt voor de operator "--".
Gewijzigd op 15/05/2011 13:49:36 door Joey Drieling
Maar Joey, heb je daar ook onderbouwing voor?
$i++ geef eerst de huidige waarde terug, en gaat dan pas optellen.
Code (php)
Omdat het toch wat sneller is.
En omdat ik niet het zooi wil van het verschil tussen $i++; en ++$i
Code (php)
Is dat zowiezoow niet korter/sneller?
Wat een gedoe en lelijke code om die paar 1000ste miliseconden... Of je {} of niet gebruik maakt echt niks uit voor de mens, ook of je . of , gebruikt heeft bijna geen verschil. Waarom zou je deze code zo snel mogelijk willen maken? Zorg gewoon dat het overzichtelijk is en dan is het goed.
Wouter J op 15/05/2011 16:54:52:
Wat een gedoe en lelijke code om die paar 1000ste miliseconden... Of je {} of niet gebruik maakt echt niks uit voor de mens, ook of je . of , gebruikt heeft bijna geen verschil. Waarom zou je deze code zo snel mogelijk willen maken? Zorg gewoon dat het overzichtelijk is en dan is het goed.
Persoonlijk zie ik idd liever een overzichtelijke code (dus met haakjes) en veel commentaar maar dat is niet de vraag van de TS dus doen we dat ook niet. (ookal heb je gelijk).
Het is natuurlijk alleen interessant in zoverre het je een beetje inzicht kan geven in hoe PHP werkt. Daarbuiten is het heel tegenstrijdig om heel hard OOP te oefenen en je dan zorgen maken over dit soort micro-optimalisaties.
Het onderscheid tussen ++$i en $i++ acht ik dan weer als PHP basiskennis.
Grappig die komma's in plaats van punten bij het echo'en. Zijn er mensen die dat echt zo doen? Heb er zelf ook ooit hier eens een vraag over gesteld en als ik me niet vergis gebruikt iedereen punten.
Ik denk omdat dan de concatination (samenvoegen strings) in compiled code gebeurt, niet in PHP.
@Pim: wat is sneller? Met komma's of met punten?
Dus dan toch komma's gebruiken bij het echo'en?
Ik vind het inconsistent en doe het niet.
Maar al dit soort micro-optimalisaties zijn van nihil belang vergeleken met de schrijf-, lees- en onderhoudbaarheid (rotwoord...) van je code.
Als je performance belangrijk vindt, kijk dan naar opcode cache, HTTP cache, cache van je DB of zelfs 'file cache' (zoals Symfony2, die heeft alle klassen die bij elke request nodig zijn in 1 bestand gestopt).
Die zullen een voor een een veel groter resultaat geven dan al die kleine micro-optimalisaties. Als je ze allemaal gebruikt, heb je sowieso een snelle site.
Als je nu kijkt naar hoe het "hoort" wat is dan beter / mooier?
Als je punten gebruikt plak je eerst alles aan elkaar en daarna echo je het:
$naam = 'ozzie';
echo 'Hoi ik ben' . $naam;
Wat PHP eigenlijk doet is (correct me if I'm wrong) dat ie 'Hoi ik ben' en 'ozzie' aan elkaar plakt en dit in een variabele $temp stopt. Deze variabele wordt vervolgens ge-echoot.
Als je komma's gebruikt, doe je het eigenlijk logischer zou je zeggen:
$naam = 'ozzie';
echo 'Hoi ik ben' , $naam;
Nu zeg je echo 'Hoi ik ben' en echo 'ozzie'. Er hoeft niks aan elkaar te worden geplakt en er hoeft geen tijdelijke variabele te worden gebruikt. Eigenlijk zou je dus zeggen dat dit logischer en netter is.... maar niemand doet het! Raar toch?
Ik vind die komma ook heel lelijk staan.
Hier heb je trouwens ooit al een topic over aangemaakt: http://www.phphulp.nl/php/forum/topic/echo-echo/74652/