[Sambar Server 6.1] Performance problemen?

Pagina: 1
Acties:

  • Theadalus
  • Registratie: Juni 2003
  • Laatst online: 06-03 16:40

Theadalus

Nostalgist

Topicstarter
Ik ben momenteel bezig met een website in PHP en MySQL en ondervind nogal een performance-verschil in het "parsen" van de PHP, de site draait op mijn eigen server (Windows Server 2003 + Sambar Server 6.1).
Ik heb een aantal meetpunten in de PHP-code ingebouwd om de parse-tijden te monitoren en kom tot de conclusie dat het parsen van de PHP een factor 50 tot 100 langer duurt wanneer ik de betreffende pagina op een externe client (bv. op mijn werk) bekijk i.t.t. wanneer ik dit op een interne client (in mijn eigen netwerk) doe :?

Ik heb 3 meetpunten:
1. Verbinding maken met database (MySQL v4.0.21)
2. Data ophalen (ik heb een eigen class die eerst alle records in een array laadt)
3. Genereren van de HTML m.b.v. de opgevraagde data

Vanaf externe client:
1. 0.002901s
2. 0.008781s
3. 2.310987s

Vanaf interne client:
1. 0.002771s
2. 0.008133s
3. 0.041184s

(De gemeten tijden zijn totaaltijden per handeling, dus geen tussentijden)

Ik vind dit persoonlijk nogal vreemd, de tijden van meetpunt 3 zouden toch gelijk moeten zijn, ongeacht waar de request wegkomt?

Computing...


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
De data moet toch ook over de lijn worden gestuurd? Een interne client zit ws met 10 of 100 of 1000 Mbit op de server aangesloten, terwijl de externe client blij mag zijn met 385kbit (ADSL Lite bij xs4all). Dan duurt het dus even voordat het de lijn over is.

  • Theadalus
  • Registratie: Juni 2003
  • Laatst online: 06-03 16:40

Theadalus

Nostalgist

Topicstarter
Staat de server dan al data te versturen terwijl ie de PHP nog aan het uitvoeren is, ik dacht dat de PHP-code eerst "omgezet" wordt naar HTML en daarna pas wordt verstuurd naar de client?
De gemeten tijden zijn parse/executie-tijden, niet de download-tijden!

Computing...


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Tenzij je aangeeft dat er gebuffered moet worden, gebeurt dat inderdaad, tenminste bij mijn php server (niet Sambar) is dat zo.

  • Theadalus
  • Registratie: Juni 2003
  • Laatst online: 06-03 16:40

Theadalus

Nostalgist

Topicstarter
Ah, het was dus een PHP-instelling (in php.ini):

code:
1
2
3
4
5
6
7
8
; Output buffering allows you to send header lines (including cookies) even 
; after you send body content, at the price of slowing PHP's output layer a 
; bit. You can enable output buffering during runtime by calling the output 
; buffering functions. You can also enable output buffering for all files by 
; setting this directive to On. If you wish to limit the size of the buffer 
; to a certain size - you can use a maximum number of bytes instead of 'On', as 
; a value for this directive (e.g., output_buffering=4096). 
output_buffering = Off

Ik heb de output_buffering op 'On' gezet, en nu klopt het allemaal :D


Thnx!!! _/-\o_

Computing...