Avatar billede da9el Nybegynder
09. juni 2007 - 11:37 Der er 12 kommentarer og
1 løsning

OOP Hastighed/CPU load

Hej,

Jeg har fundet følgende artikel:

http://www.webmasterstop.com/56.html

Kort sagt handler den om hvornår man bør benytte OOP, og hvornår man ikke bør. Artiklen kommer til slut med en konklusion der lyder:

"Therefore, the next time you are developing PHP code, you should consider whether you want faster execution times / less CPU load, or easier to maintain code."

Hvor meget skal man ligge i dette? Altså er hans testmetode bare mærkelig eller er OOP virkelig så langsomt?
Avatar billede erikjacobsen Ekspert
09. juni 2007 - 11:40 #1
Det er ikke realistisk at lave 1000000 nye klasser på een PHP-side. En "new Class" koster, men så er det heller ikke værre. Jeg tror du skal finde andre kilder ;)
Avatar billede erikjacobsen Ekspert
09. juni 2007 - 11:46 #2
1000000 nye objekter ... mener jeg - det er vist for tidligt på dagen.
Avatar billede da9el Nybegynder
09. juni 2007 - 12:00 #3
Hehe, kan sgu godt være, men man ved jo aldrig :) I hans test er OOP jo 486% langsommere, og derfor begyndte jeg at blive små nervøs for de ting jeg allerede har lavet med det :P
Avatar billede erikjacobsen Ekspert
09. juni 2007 - 12:06 #4
Du kan ikke bruge hans tal til noget som helst. Længere er den banan vist ikke.
Avatar billede da9el Nybegynder
09. juni 2007 - 12:09 #5
Fair nok, smid et svar :)
Avatar billede erikjacobsen Ekspert
09. juni 2007 - 12:15 #6
Nej tak, jeg samler slet ikke på point. Vil du ikke holde spørgsmålet åbent, for at se om der er nogen der kender et sted med realistiske tidsmålinger?
Avatar billede da9el Nybegynder
09. juni 2007 - 13:03 #7
God ide, det gør vi ! :)
Avatar billede showsource Seniormester
09. juni 2007 - 13:24 #8
Kender ikke nogen steder, men den ene gang jeg prøvede lidt med klasser af, gik jeg væk fra det igen.
PHP skulle blot returnere "Hello Class", og det kunne mærkes på loadtiden (XP og Apache) og siden da, har jeg ikke haft lyst til at rode med det...

Men som med al anden kode, er det jo også et spm. om hvordan "den er skruet sammen"
Avatar billede da9el Nybegynder
09. juni 2007 - 14:48 #9
Hvis du mener hvordan man selv skruer koden sammen, så er det i PHP ikke helt så enkelt, da det ikke bliver compilet på samme måde som eksempelvis c++. I PHP afhænger det også af hvordan selve PHP "omformeren"(kan ikke lige komme på hvad det hedder :) er lavet.
Desuden er OOP i PHP vidst ikke helt på plads endnu, hvilket måske også kan betyde lidt.. ?
Avatar billede well_r Nybegynder
10. juni 2007 - 10:31 #10
hehe.. det vel mest bare et spørgsmål om at sørge for at have en server med tilstrækkelig med CPU kraft og hukommelse..
:D
lige noget hardwareproducenterne elsker!
Avatar billede windcape Praktikant
10. juni 2007 - 14:01 #11
OOP er ikke langsomt. Hvis du har brug for OOP har du en meget stor siden, og så bruger du jo alligevel opcode cache (APC,TurkMM), og frontend cache (Zend_Cache eller lign.)

Desuden er artikel gammel og ubrugelig pga. den måde han udfører den på.
Ligeså ledes er der direkte FEJL i hans kode da $cnt ikke er defineret, hvilket kaster en E_NOTICE.

Hans tal er langt ud, forskellen for mig er nærmere 1 sekund, med en ordenlig kodestandard. Og jo mere advanceret koden bliver, desto mere balanceret bliver load tiden.
Avatar billede windcape Praktikant
10. juni 2007 - 14:03 #12
<?php

class Test {
    function one() {
        return 1;
    }
}

$start = microtime(true);
$test  = new Test();
$count = 0;
for($i=0; $i<1000000; $i++) {
    $count += $test->one();
}
echo (microtime(true) - $start);

?>

Tager mellem 1.6 og 1.8 sekunder at eksekvere på min IBM R40e med 768mb RAM, og en 1.8ghz processor, + windows og alt mulig andet skrammel som bruger ram , og ALT for mange php moduler loadet, samt en langsom HTTPd (apache).
Avatar billede da9el Nybegynder
04. september 2010 - 14:45 #13
:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester