/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
performance - én main.php frem for mange?
Fra : Thomas Rokamp


Dato : 02-02-04 18:23

Hejsa!

Jeg er i gang med at lave et site, der skal performe bedst muligt.

Jeg vil gerne høre jeres mening om to modeller :

1:
Én main.php der inkludere de nødvendige php filer, for at vise netop det
ønskede modul

2:
Én main side (eks. news.php, mail.php, messages.php) for hvert modul

Jeg ved ikke nok om php til at afgøre, om loaded med tiden vil blive for
stort på en enkelt side, hvis man følger model 1.

Mvh.
Thomas Rokamp



 
 
Peter Brodersen (02-02-2004)
Kommentar
Fra : Peter Brodersen


Dato : 02-02-04 18:27

On Mon, 2 Feb 2004 18:23:13 +0100, "Thomas Rokamp" <no_spam@crax.dk>
wrote:

>Jeg er i gang med at lave et site, der skal performe bedst muligt.
>
>Jeg vil gerne høre jeres mening om to modeller :

[..]

I grove træk, så er forskellen på performance i de to tilfælde normalt
vilkårlig, i forhold til den øvrige kode, der måtte være i. Dertil
kommer, at det efterhånden ofte kan betale sig at ofre lidt
performance (der nærmest er vilkårlig i praksis) for fx bedre
struktur, mere overskuelig kode, og så fremdeles.

Hvori består jagten på performance? Er der decideret
sløvhedsproblemer, er der mange brugere, etc.?

--
- Peter Brodersen

Ebbesen for president!

Thomas Rokamp (02-02-2004)
Kommentar
Fra : Thomas Rokamp


Dato : 02-02-04 19:53

> I grove træk, så er forskellen på performance i de to tilfælde normalt
> vilkårlig, i forhold til den øvrige kode, der måtte være i. Dertil
> kommer, at det efterhånden ofte kan betale sig at ofre lidt
> performance (der nærmest er vilkårlig i praksis) for fx bedre
> struktur, mere overskuelig kode, og så fremdeles.
>
> Hvori består jagten på performance? Er der decideret
> sløvhedsproblemer, er der mange brugere, etc.?

Der er pt ingen problemer, da der ingen brugere er... Men jeg forventer
(sitet er ikke dansk) at der vil være op i mod 40-50.000 brugere online
samtidigt. Derfor vil jeg gerne lave det rigtigt fra starten af...

Jeg kunne godt bruge et link til noget PHP performance tips/tricks... Dos
and don'ts

Mvh.
Thomas Rokamp



Thomas Lindgaard (03-02-2004)
Kommentar
Fra : Thomas Lindgaard


Dato : 03-02-04 22:18

On Mon, 02 Feb 2004 19:53:05 +0100, Thomas Rokamp wrote:

> Der er pt ingen problemer, da der ingen brugere er... Men jeg forventer
> (sitet er ikke dansk) at der vil være op i mod 40-50.000 brugere online
> samtidigt.

Nu ved jeg jo af gode grunde ikke hvad det er for et site - men 40-50000
samtidige brugere lyder som en god slat!!!

Jeg ville til enhver tid vælge en løsning med en php-fil for hvert modul
- noget ala

<?php

include 'header.php';

$template->Set('body', TheFunctionThatDoesItAll());

include 'footer.php';

?>

hvor header.php og footer.php klarer alt det som er fælles for siderne
(dvs. inkluderer diverse funktioner, opretter forbindelse til databasen,
laver $template-instansen og viser den, ...).

Jeg kan ikke lide at have php og html blandet så mine sider er altid ren
php - det er muligt at det koster lidt performance når man ikke har
blokke af html der bare kan dumpes - men på den anden side synes jeg tit
at man i blandingsprodukter kommer til at hoppe ind og ud af php-mode.

I et tidligere liv kodede jeg på et site med noget hjemmelavet
template-halløj i bunden, og det var ikke verdens hurtigste kode (det har
jeg til dels rettet op på), men næste gang jeg skal lave noget, så
bliver det med en template-motor ala den her

http://www.sitepoint.com/article/1218/1

Hvad er det så man siger... my two cents?
/Thomas

Thomas Rokamp (04-02-2004)
Kommentar
Fra : Thomas Rokamp


Dato : 04-02-04 01:38

> > Der er pt ingen problemer, da der ingen brugere er... Men jeg forventer
> > (sitet er ikke dansk) at der vil være op i mod 40-50.000 brugere online
> > samtidigt.
>
> Nu ved jeg jo af gode grunde ikke hvad det er for et site - men 40-50000
> samtidige brugere lyder som en god slat!!!

Ja - jeg kan ikke vurdere om det er højt sat, men det kunne godt blive
realistisk...

> Jeg ville til enhver tid vælge en løsning med en php-fil for hvert modul
> - noget ala
>
> <?php
>
> include 'header.php';
>
> $template->Set('body', TheFunctionThatDoesItAll());
>
> include 'footer.php';
>
> ?>

Det giver god mening... lige nu har jeg én main.php, der inkluderer de .php
filer der skal til for at gøre det der nu skal gøres. Dette styres gennem
brug af parameteren "module", som i en switch() rutine bestemmer hvad der
skal inkluderes.

Det er lidt det modsatte af det du skriver.

> I et tidligere liv kodede jeg på et site med noget hjemmelavet
> template-halløj i bunden, og det var ikke verdens hurtigste kode (det har
> jeg til dels rettet op på), men næste gang jeg skal lave noget, så
> bliver det med en template-motor ala den her
>

Jeg bruger en template engine der hedder Smarty - smarty.php.net

Den kan en masse og er nem at bruge. Men jeg har ingen anelse om, hvorvidt
den performer godt. Men det er nok værd at bruge caching så meget som
muligt. Jeg skal bare lige gennemskue hvorhenne og hvordan det gøres
smartest og mest optimalt...


MVh.
Thomas Rokamp



Thomas Lindgaard (04-02-2004)
Kommentar
Fra : Thomas Lindgaard


Dato : 04-02-04 09:56

On Wed, 04 Feb 2004 01:38:02 +0100, Thomas Rokamp wrote:

> Det giver god mening... lige nu har jeg én main.php, der inkluderer de .php
> filer der skal til for at gøre det der nu skal gøres. Dette styres gennem
> brug af parameteren "module", som i en switch() rutine bestemmer hvad der
> skal inkluderes.
>
> Det er lidt det modsatte af det du skriver.

Grunden til at jeg selv bruger en php-fil pr. side/modul/whatever er at
jeg synes at det gør koden meget mere overskuelig - der kommer mindre
funktionalitet i hver fil og dermed mindre kode.

> Jeg bruger en template engine der hedder Smarty - smarty.php.net
>
> Den kan en masse og er nem at bruge. Men jeg har ingen anelse om,
> hvorvidt den performer godt. Men det er nok værd at bruge caching så
> meget som muligt. Jeg skal bare lige gennemskue hvorhenne og hvordan det
> gøres smartest og mest optimalt...

Jeg har aldrig brugt Smarty så den vil jeg ikke udtale mig om :)

Det jeg godt kan lide ved template-løsningen i linket er, at man - i
modsætning til min egen løsning - kan flytte en masse funktionalitet
over i templaten (f.eks. kan man stikke den et array og så klarer
templaten selv at lave en tabel ud af det).

Derudover bliver der ikke brugt str_replace() eller lignende til at fylde
hullerne i templaten - indsættelse af variable bliver klaret ved at
extract()'e template-variable og så include()'e den ønskede template
(som skal være et php-script) - det må give en god performance.

Mvh.
/Thomas

Thomas Rokamp (02-02-2004)
Kommentar
Fra : Thomas Rokamp


Dato : 02-02-04 20:08

En anden ting...
Hvis man har alle sine database funktioner samlet i én stor fil, kan det så
ikke blive meget tungt, hvis alle filer inkluderer denne altid?



Ulrik Nielsen (02-02-2004)
Kommentar
Fra : Ulrik Nielsen


Dato : 02-02-04 21:40

Thomas Rokamp wrote:
> En anden ting...
> Hvis man har alle sine database funktioner samlet i én stor fil, kan det så
> ikke blive meget tungt, hvis alle filer inkluderer denne altid?

det har jo altid noget at sige, men hvad er bedst ?

- en stor include
- regnetiden der bruges på at finde ud af hvad der skal inkluderes ?

tit er det jo hos brugeren at flaskehalsen er..
så optimeret html/css er noget der er godt at huske at bruge tid på når
den slags sites skal laves....
(http://alistapart.com/)

http://alltasks.net/code/php_coding_standard.html
skriver noget om kode standarter

http://phplens.com/lens/php-book/optimizing-debugging-php.php
skriver om optimering

http://www.zend.com/zend/trick/trick-optimizing-php.php
også om optimering...


andre ting man kunne ta' med...

- brug af caching system
- brug af optimizer scripts (som zend's optimizer)
- google - din ven :)


--
>> ulrik nielsen
excuse of the day : wrong polarity of neutron flow
from bofh : http://www.cs.wisc.edu/~ballard/bofh/

Poul-Erik Andreasen (04-02-2004)
Kommentar
Fra : Poul-Erik Andreasen


Dato : 04-02-04 10:54

On Wed, 4 Feb 2004 01:38:02 +0100
"Thomas Rokamp" <no_spam@crax.dk> wrote:

> > > Der er pt ingen problemer, da der ingen brugere er... Men jeg forventer
> > > (sitet er ikke dansk) at der vil være op i mod 40-50.000 brugere online
> > > samtidigt.
> >
> > Nu ved jeg jo af gode grunde ikke hvad det er for et site - men 40-50000
> > samtidige brugere lyder som en god slat!!!
>
> Ja - jeg kan ikke vurdere om det er højt sat, men det kunne godt blive
> realistisk...

Desværre er der ikke noget der hedder online på et http-system. Det tal du
her nævner er ganske uninteressandt som estimat. Hvis vi først forestiller os at
de nævnte 50.000 "online" klienter gennemsnitligt spenderer 5 min. på hver side.
lad os dernæst forrestille os at du ved en eller anden lejlighed for sat rigtig
interessandt på serverer så folks gennemsnitlige læsetid stiger til 10 min.
Så vil antallet af "online" klienter stige til 100.000, men det vil overhovedet
ikke have nogen indflydelse på det load maskinen skal præsterere.

Det tal du skal estimerer er antallet af synkrone hit det vil sige hvor mange
hits der vil forekomme inden for den tide det tager serveren at behandle et
enkelt hit. Det afhænger sælvsagt meget af hvad du har med at gøre
store gafikfiler er selvsagt noget der er kostbart i båndbredde og ram.
avancerede databasesøgeninger er kostbart i CPU-tid.



--
Poul-Erik Andreasen

http://www.linux-service.dk
http://www.pea.dk

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste