|
| tungt php-script Fra : Jeppe Vesterbæk |
Dato : 27-01-03 21:40 |
|
Hej
Jeg har lavet en noget tung php-funktion, som gennemløber et større antal
løkker. Hvis jeg forsøger at køre denne funktion flere gange via en
for-løkke, så står php og bruger 100% cpu-tid og der sker ikke rigtigt det
store. Jeg kan godt blot kalde funktionen én gang, men ellers går den
kold....
Jeg bruger php lokalt m. iis.
Kan php ikke bruges til tunge beregningsopgaver?
/Jeppe
| |
Lars Dybdahl (27-01-2003)
| Kommentar Fra : Lars Dybdahl |
Dato : 27-01-03 23:03 |
|
Jeppe Vesterbæk wrote:
> Kan php ikke bruges til tunge beregningsopgaver?
Jo - men standard indstillingen er, at den maksimalt må køre 30 sekunder.
Det skyldes at man vil sikre, at et php script ikke lægger en webserver
ned. Det rettes i php.ini.
Lars.
--
Freelance programmør
Programmering mod timebetaling
| |
Henrik Stidsen (27-01-2003)
| Kommentar Fra : Henrik Stidsen |
Dato : 27-01-03 23:53 |
|
"Jeppe Vesterbæk" <mail[REMOVE-XXXXXXXXXX]@jhv.dk> wrote in
news:b145fb$9fp$1@sunsite.dk
> Jeg har lavet en noget tung php-funktion, som gennemløber et
> større antal løkker. Hvis jeg forsøger at køre denne funktion
> flere gange via en for-løkke, så står php og bruger 100% cpu-tid
> og der sker ikke rigtigt det store. Jeg kan godt blot kalde
> funktionen én gang, men ellers går den kold....
Det lyder som om du et eller andet sted i din kode har fået lavet en
uendelig løkke - så kan PHP komme til at stå og køre og køre og køre
og (måske) generere en kæmpe mængde data som først sendes til
klienten når scriptet afsluttes ved timeout.
--
..: Henrik Stidsen - HS235.dk ::...
| |
Jeppe Vesterbæk (28-01-2003)
| Kommentar Fra : Jeppe Vesterbæk |
Dato : 28-01-03 00:32 |
|
> Det lyder som om du et eller andet sted i din kode har fået lavet en
> uendelig løkke - så kan PHP komme til at stå og køre og køre og køre
> og (måske) generere en kæmpe mængde data som først sendes til
> klienten når scriptet afsluttes ved timeout.
Løkken er ikke uendelig, men ganske krævende. Har sat timeout til 30000 i
php.ini
/Jeppe
| |
Lars Dybdahl (28-01-2003)
| Kommentar Fra : Lars Dybdahl |
Dato : 28-01-03 17:58 |
|
Jeppe Vesterbæk wrote:
> Løkken er ikke uendelig, men ganske krævende. Har sat timeout til 30000 i
> php.ini
Hvilken timeout har iis?
Lars.
--
Freelance programmør
Programmering mod timebetaling
| |
Niels Andersen (28-01-2003)
| Kommentar Fra : Niels Andersen |
Dato : 28-01-03 06:50 |
|
Jeppe Vesterbæk wrote in <b145fb$9fp$1@sunsite.dk>:
> Kan php ikke bruges til tunge beregningsopgaver?
Jo, men PHP er ikke velegnet til det. Fx. er kompileret C-program er normalt
*mange* gange hurtigere. Det "koster" godt nok noget tid og cpu-kraft at
starte C-programmet op (fra PHP), men er det tunge beregninger kan det godt
betale sig, performance-mæssigt.
Men jeg tror ikke der er noget der forhindrer dig i at lade et PHP-script
køre i timevis, hvor den tager al den CPU-kraft den får lov til. I så fald
ligger problemet nok i IIS. Prøv evt. med Apache eller kør PHP'en direkte
uden webserver.
--
Mvh.
Niels Andersen
http://myplace.dk/articles/getpost/?lang=da
| |
Christian Iversen (28-01-2003)
| Kommentar Fra : Christian Iversen |
Dato : 28-01-03 16:21 |
|
>> Kan php ikke bruges til tunge beregningsopgaver?
>[...]
> Men jeg tror ikke der er noget der forhindrer dig i at lade et PHP-script
> køre i timevis, hvor den tager al den CPU-kraft den får lov til. I så fald
> ligger problemet nok i IIS. Prøv evt. med Apache eller kør PHP'en direkte
> uden webserver.
Nu er PHP jo lavet til meget hurtigt-afviklende programmer. Jeg har på
fornemmelsen at bl.a. dens garbage collection ikke fungerer særligt godt
over længere tid. (Når man tænker på at de fleste php-scripts aldrig kører
mere end et par sekunder, er en time *meget* lang tid :)
--
M.V.H
Christian Iversen
| |
Ulrik Nielsen (28-01-2003)
| Kommentar Fra : Ulrik Nielsen |
Dato : 28-01-03 16:34 |
|
Christian Iversen wrote:
> Nu er PHP jo lavet til meget hurtigt-afviklende programmer. Jeg har på
> fornemmelsen at bl.a. dens garbage collection ikke fungerer særligt godt
> over længere tid. (Når man tænker på at de fleste php-scripts aldrig kører
> mere end et par sekunder, er en time *meget* lang tid :)
>
så var det måske en ide at lave sin egen garbage collection.
så som at unsette ikke længere brugte variabler..
og definere sine variabler inden brug, så php ikke skal bruge så meget
tid på at gætte sig til datatyper osv.
-ulrik-
| |
Christian Iversen (28-01-2003)
| Kommentar Fra : Christian Iversen |
Dato : 28-01-03 19:23 |
|
> Christian Iversen wrote:
>> Nu er PHP jo lavet til meget hurtigt-afviklende programmer. Jeg har på
>> fornemmelsen at bl.a. dens garbage collection ikke fungerer særligt godt
>> over længere tid. (Når man tænker på at de fleste php-scripts aldrig
>> kører mere end et par sekunder, er en time *meget* lang tid :)
>>
>
> så var det måske en ide at lave sin egen garbage collection.
> så som at unsette ikke længere brugte variabler..
> og definere sine variabler inden brug, så php ikke skal bruge så meget
> tid på at gætte sig til datatyper osv.
Det med at undefine()'e sine variable lyder som en god idé. Dog tror jeg
ikke at en foruderklæring af variable vil hjælpe ret meget. Typen kan jo
ændres ved hver tildeling, så der er ingen garanti for at have samme type
på linie n, som på linie n+1 :)
Men det kunne da være man lige skulle kigge i koden på et tidspunkt. Jeg
mener bare at have set at php altid checker typen af operanderne ved en
udregning (+,-,*,etc), sidst jeg kiggede (i koden).
(jeg kan tage fejl :)
--
M.V.H
Christian Iversen
| |
Ulrik Nielsen (29-01-2003)
| Kommentar Fra : Ulrik Nielsen |
Dato : 29-01-03 09:32 |
|
Christian Iversen wrote:
>
> Men det kunne da være man lige skulle kigge i koden på et tidspunkt. Jeg
> mener bare at have set at php altid checker typen af operanderne ved en
> udregning (+,-,*,etc), sidst jeg kiggede (i koden).
>
> (jeg kan tage fejl :)
>
du tager ikke fejl, men man må gå ud fra at man når man definere en
variabel, ved nogenlunde hvad den skal bruges til.
derfor er det en god ide at definere sine variabler før brug,
og det gør altså koden hurtigere...
Ved ikke lige hvad der er der gør det, men jeg har optimeret flere
scripts ved at definere variabler før brug, og så bruge "unset()" når de
ikke længere er aktive.
-ulrik-
| |
Christian Iversen (29-01-2003)
| Kommentar Fra : Christian Iversen |
Dato : 29-01-03 14:52 |
|
>> Men det kunne da være man lige skulle kigge i koden på et tidspunkt. Jeg
>> mener bare at have set at php altid checker typen af operanderne ved en
>> udregning (+,-,*,etc), sidst jeg kiggede (i koden).
>>
>> (jeg kan tage fejl :)
>>
>
> du tager ikke fejl, men man må gå ud fra at man når man definere en
> variabel, ved nogenlunde hvad den skal bruges til.
>
> derfor er det en god ide at definere sine variabler før brug,
> og det gør altså koden hurtigere...
> Ved ikke lige hvad der er der gør det, men jeg har optimeret flere
> scripts ved at definere variabler før brug, og så bruge "unset()" når de
> ikke længere er aktive.
Interessant. Har du prøvet kun at bruge unset() ? Er det muligt at det udgør
hele forskellen?
--
M.V.H
Christian Iversen
| |
Ulrik Nielsen (29-01-2003)
| Kommentar Fra : Ulrik Nielsen |
Dato : 29-01-03 15:04 |
|
Christian Iversen wrote:
> Interessant. Har du prøvet kun at bruge unset() ? Er det muligt at det udgør
> hele forskellen?
>
najh! ;)
jeg har sku nok kun prøvet med begge dele, jeg definere altid mine
variabler..
Det kan godt være at det bare er en gammel vane, men jeg kan nu godt
lide at have kontrol med hvad mine variabler starter ud med at være..
-ulrik-
| |
Christian Iversen (29-01-2003)
| Kommentar Fra : Christian Iversen |
Dato : 29-01-03 15:39 |
|
Ulrik Nielsen wrote:
>
>
> Christian Iversen wrote:
>> Interessant. Har du prøvet kun at bruge unset() ? Er det muligt at det
>> udgør hele forskellen?
>>
>
> najh! ;)
> jeg har sku nok kun prøvet med begge dele, jeg definere altid mine
> variabler..
> Det kan godt være at det bare er en gammel vane, men jeg kan nu godt
> lide at have kontrol med hvad mine variabler starter ud med at være..
Joeeh deeet... :)
Det kan da være man lige skulle undersøge om det er en fordel.
--
M.V.H
Christian Iversen
| |
|
|