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