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

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

Månedens bedste
Årets bedste
Sidste års bedste