Kan deze code nog sneller

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Pagina: 1 2 volgende »

Maarten PHP

Maarten PHP

15/05/2011 10:57:14
Quote Anchor link
Kan deze code nog sneller?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
set_time_limit(0);

$start_time = time;
$limit = 100;

for($i = 1; $i <= $limit; $i++)
if($i == $limit)
    echo $i , '<br /><br />';
else
    echo $i , '<br />';

$end_time = time;

$time = $end_time - $start_time;
echo 'Deze pagina heeft er ' , $time , ' seconden over gedaan om te laden.';

?>


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
 
PHP hulp

PHP hulp

16/01/2025 04:05:39
 
Pim -

Pim -

15/05/2011 11:37:23
Quote Anchor link
Ik zou je hier niet zo'n zorgen over maken...
Mss is dit wat sneller
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$start
= microtime(true);
$i = 0;
while(++$i < 101) {
    echo $i, '<br />';
}

echo '<br />';
echo 'Time = ',microtime(true)-$start;
?>
Gewijzigd op 15/05/2011 13:46:24 door Pim -
 
Maarten PHP

Maarten PHP

15/05/2011 11:38:04
Quote Anchor link
Pim - op 15/05/2011 11:37:23:
Ik zou je hier niet zo'n zorgen over maken...
Mss is dit wat sneller
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$start
= microtime(true);
$i = 0;
while($i++ < 100) {
    echo $i, '<br />';
}

echo '<br />';
echo 'Time = ',microtime(true)-$start;
?>


Lijkt mij ook :p
 
Pim -

Pim -

15/05/2011 11:38:46
Quote Anchor link
In deze while is er namelijk maar 1 callback per iteratie, in je for 2: de test en de ophoging.
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 -
 
Joey Drieling

Joey Drieling

15/05/2011 13:41:22
Quote Anchor link
Let wel op dat bij < hij dan niet tot 100 gaat maar to 99.

< = 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
 
Pim -

Pim -

15/05/2011 13:46:13
Quote Anchor link
Nee, zowel het oude gequote script als het nieuwe script print 1-100.
Maar Joey, heb je daar ook onderbouwing voor?
 
Joey Drieling

Joey Drieling

15/05/2011 14:00:43
Quote Anchor link
Met.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$i
= 0;
while(++$i < 100) {
    echo $i, '<br />';
}

?>

Gaat hij tog maar echt tot 99.

zie: http://h1.ripway.com/rakoda/aapp.php
 
Dos Moonen

Dos Moonen

15/05/2011 16:28:51
Quote Anchor link
++$i telt eerst op en geeft dan de nieuwe waarde terug.
$i++ geef eerst de huidige waarde terug, en gaat dan pas optellen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$i
= 0;
echo $i++; // 0
echo ++$i; // 2
?>
 
Maarten PHP

Maarten PHP

15/05/2011 16:41:34
Quote Anchor link
Ik heb het veranderd in:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
set_time_limit(0);
$start_time = time();

for($i = 1; $i <= 10; $i++)
    echo $i , '<br />' , "\n";

$end_time = time();
$total_time = $end_time - $start_time;
echo '<br />' , 'De pagina had ' , $total_time , ' seconden nodig op te laden.';
?>


Omdat het toch wat sneller is.
En omdat ik niet het zooi wil van het verschil tussen $i++; en ++$i
 

15/05/2011 16:51:05
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
set_time_limit(0);
$start_time = time();

for($i = 1; $i <= 10; $i++)
    echo $i , '<br />' , "\n";

echo '<br />' , 'De pagina had ' , (time()-$start_time) , ' seconden nodig op te laden.';
?>


Is dat zowiezoow niet korter/sneller?
 
Wouter J

Wouter J

15/05/2011 16:54:52
Quote Anchor link
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.
 

15/05/2011 17:09:59
Quote Anchor link
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).
 
Pim -

Pim -

15/05/2011 23:26:26
Quote Anchor link
Haakjes schijnen ook sneller te zijn.
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.
 
Ozzie PHP

Ozzie PHP

16/05/2011 01:03:11
Quote Anchor link
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.
 
Pim -

Pim -

16/05/2011 09:12:06
Quote Anchor link
Nee, maar het is iig sneller.
Ik denk omdat dan de concatination (samenvoegen strings) in compiled code gebeurt, niet in PHP.
 
Ozzie PHP

Ozzie PHP

16/05/2011 10:17:13
Quote Anchor link
@Pim: wat is sneller? Met komma's of met punten?
 
Pim -

Pim -

16/05/2011 11:06:47
Quote Anchor link
Komma's
Dat zegt iig iedereen op internet.
Bijvoorbeeld hier
 
Ozzie PHP

Ozzie PHP

16/05/2011 12:32:53
Quote Anchor link
Dus dan toch komma's gebruiken bij het echo'en?
 
Pim -

Pim -

16/05/2011 19:02:41
Quote Anchor link
Dat moet je echt zelf weten...
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.
 
Ozzie PHP

Ozzie PHP

16/05/2011 20:31:00
Quote Anchor link
Oke thanks.

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?
 
Wouter J

Wouter J

16/05/2011 20:45:58
Quote Anchor link
PHP.net geeft zelf aan dat de punt ervoor is om 2 dingen aan elkaar te koppelen. Dit geven ze volgens mij niet aan van de komma.
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/
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.