[php] Lange laadtijd pagina's door slecht parsen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • arievdonk
  • Registratie: Oktober 2004
  • Laatst online: 21-02-2024
Mijn laadtijd is erg lang, en ik weet niet precies waar dit nou aan licht,
Ik hoop dat jullie mij hier verder mee kunnen helpen.
verdere uitlaag/vraag onderaan.

Mijn index.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?
define('IN_PHPBB', true);
$site_root_path = '/data/members/paid/a/r/arievdonk.nl/htdocs/www/ledensysteem/'; 
$phpbb_root_path2 = '../phpBB2/'; 
$phpbb_root_path = $site_root_path . $phpbb_root_path2;
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.php');

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
?> 
<?php
$begin = microtime();
$split = explode(" ", $begin);
$begin_precies = $split[0];
$begin_seconden = date("U");
$begin_tijd = $begin_precies + $begin_seconden;
?>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
   <script language="JavaScript">
    message     = "MorgensterSooS^" +
                  "De SooS ^" +
                  "Gereformeerd en gezellig^" +
                  "Lijkt het je wat post dan wat op het forum^"


  scrollSpeed = 3
   lineDelay   = 1500
   txt         = ""
    function scrollText(pos) {
      if (message.charAt(pos) != '^') {
        txt    = txt + message.charAt(pos)
        status = txt
        pauze  = scrollSpeed
      }
      else {
        pauze = lineDelay
        txt   = ""
        if (pos == message.length-1) pos = -1
      }
     pos++
      setTimeout("scrollText('"+pos+"')",pauze)
    }
  scrollText(0)
  </script> 
<title>MorgensterSooS Den Helder</title>
</head>

<body background="bg.gif">

<div align="center">

<table bgcolor="#f4ffff" border="0" cellpadding="0" cellspacing="0" width="77" height="853" bordercolor="#FF9224">
    <!-- MSTableType="layout" -->
    <tr>
        <td align="center" valign="top" height="81" colspan="3">
        <img src="../test/headerleft.jpg" ><img src="../images/header.jpg" width="650" height="81"><img src="../test/headerright.jpg">
        </td>
    </tr>
    <tr>
        <td valign="top"><?php include('menu.php') ?></td>
        <td valign="top" height="751">
        <!-- MSCellType="ContentBody" -->
<?php 
        switch($_GET['page']){ 
        default: 
        include ("../test/home.php"); 
        break; 
        case "statistieken": 
        include ("../test/statistieken/count.php"); 
        break; 
        case "home": 
        include ("../test/home.php"); 
        break;
        case "fotos": 
        include ("../album/Albumlist.php"); 
        break; 
        case "filmpjes": 
        include ("../test/filmpjes.php"); 
        break;          
        case "contact": 
        include ("../test/contact.php"); 
        break;
        case "route": 
        include ("../test/route.php"); 
        break;  
        } 
?>
            <p align="center">
        
        </td>

    </tr>
    <tr>
        <td align="center" height="20" width="61"> 

        
        </td>
        <td align="center" height="20" width="600">
        <p align="center" >
<?PHP
include_once('../test/statistieken/log.inc.php');
$log = new log(((isset($_GET['page']))) ? $_GET['page'] : 'Beginpagina'); // nu neemt hij dus bij '?page=test' die 'test'
?> 
        <?php    
            $einde = microtime();
            $split = explode(" ", $einde);
            $eind_precies = $split[0];
            $eind_seconden = date("U");
            $eind_tijd = $eind_precies + $eind_seconden;
            
            $verschil = $eind_tijd - $begin_tijd;
            $verschil = round($verschil,5);
            echo "Parsetime is: $verschil seconden";
?>

        </td>
        <td align="center" height="20" width="150"> 
</td>
    </tr>
</table>

</div>

</body>

</html>

Mijn menu.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<html>
<head><title>Menu</title></head>
<link href="style.css" rel="stylesheet" type="text/css"> 
<body>

    <table width="135" height="61" border="0" body  cellspacing="1" cellpadding="0" bordercolor="#FF9224">          
            
            <tr>
                <td align="center" height="25"  valign="middle" bgcolor="#BB685D">
                 Algemeen</td>
            </tr>
            
            <tr>
                <td onmouseover="this.bgColor='#F8CF43'" onmouseout="this.bgColor='#FAD863'" height="25"  valign="middle" bgcolor="#FAD863" >
                 - <a href="index.php?page=home">
                <span style="text-decoration: none">Home</span></a></td>
            </tr>
            
            <tr>
                <td height="25" valign="middle" onmouseover="this.bgColor='#F8CF43'" onmouseout="this.bgColor='#FAD863'" bgcolor="#FAD863">
                 - <a href="index.php?page=contact">Contact</a></td>
            </tr>
            
            <tr>
                <td height="25"  valign="middle" onmouseover="this.bgColor='#F8CF43'" onmouseout="this.bgColor='#FAD863'" bgcolor="#FAD863">
                 - <a href="index.php?page=fotos">
                <span style="text-decoration: none">Foto's</span></a></td>
            </tr>
            <tr>
                <td height="25"  valign="middle" onmouseover="this.bgColor='#F8CF43'" onmouseout="this.bgColor='#FAD863'" bgcolor="#FAD863">
                 - <a href="index.php?page=filmpjes">Filmpjes</a></td>
            </tr>           
            <tr>
                <td height="25"  valign="middle" onmouseover="this.bgColor='#F8CF43'" onmouseout="this.bgColor='#FAD863'" bgcolor="#FAD863">
                 - Huisregels</td>
            </tr>
            
            <tr>
                <td height="25"  valign="middle" onmouseover="this.bgColor='#F8CF43'" onmouseout="this.bgColor='#FAD863'" bgcolor="#FAD863">
                 - <a target="_blank" href="../phpBB2/index.php">Forum</a></td>
            </tr>
            
            <tr>
                <td height="25"  valign="middle" onmouseover="this.bgColor='#F8CF43'" onmouseout="this.bgColor='#FAD863'" bgcolor="#FAD863">
                 <a href="index.php?page=statistieken">- Statistieken</a></td>
            </tr>
            
            <tr>
                <td height="25"   valign="middle" onmouseover="this.bgColor='#F8CF43'" onmouseout="this.bgColor='#FAD863'" bgcolor="#FAD863">
                 - <a href="index.php?page=route">Route<a/></td>
            </tr>
            <tr>
                <td height="15"</td>
            </tr>
            <tr>
                <td align="center" height="25"  valign="middle" bgcolor="#BB685D">
                 Leden</td>
            </tr>
            
            <tr>
                <td height="45" valign="midle" bgcolor="#FAD863">
                <?php if($userdata['session_logged_in']){ ?>
                Welkom  <?= $userdata[username] ?>
                <br><br><a href="../phpBB2/login.php?logout=true&redirect=../test/index.php">Uitloggen</a><br>
                <br> 
                <?= $onlinet ?>
                <?php }ELSE{ ?>
                <FORM action='../phpBB2/login.php' method=post>
                Gebruikersnaam:<br>
                <input name="username" style="width:110px;height:19px" type="text" class="login" onFocus="clearText(this)" value="" id="text2"><br>
                Wachtwoord:<br>
                <INPUT type='hidden' name='redirect' value='../test/index.php'><input name="password" style="width:110px;height:19px" type="password" class="search" onFocus="clearText(this)" value="" id="text4"><br><INPUT class=text type=hidden name=autologin checked>
                <input name="login" type="submit" value="Inloggen" class="login_button" id="login_button"><br>
                <a href="../phpBB2/profile.php?mode=register">registreren</a> 
                </form><?php } ?>
            </tr>
            <tr>
                <td height="15"</td>
            </tr>
            <tr>
                <td height="25" align="center"  valign="middle" bgcolor="#BB685D">
                 Foto van de Week</td>
            </tr>
            <tr>
            <td align="center" height="30" bgcolor="#FAD863"><img src="fotovandeweek.jpg"><br>Toch maar op letten<br>hoe je op de<br>foto gaat he..<br> </td>
            </tr>
            <tr>
                <td height="15"</td>
            </tr>
            <tr>
                <td height="25" valign="middle" align="center"  bgcolor="#BB685D">Poll
                </td>
            </tr>
            <tr>
                <td align="left" bgcolor="#FAD863"><? include('../test/poll/index.php')?>
                </td>
            </tr>   
    </table>


</body>
</html>

En mijn loc.inc.php
Kon er niet meer bij omdat ik anders de limiet zou overschijden
Als deze alsnog nodig is zal ik hem er nog bij posten.
  • Zelf denk ik dat het parsen zolang duurt omdat er "onodige"/"extra" informatie instaat.
  • Dat het komt door het gebruik van een content systeem (index.php?page=home),
    doordat het wel lijkt alsof de hele pagina verniewd word en niet alleen de tabel
  • Of dat het komt door het includen van men en de statistieken count.
Mijn vraag is dus: Of er een manier is om de laadtijd van mijn pagina omlaag te brengen.

overige vragen zal ik zow snel mogelijk beantwoorden

vriendelijk groet,

Arie

[ Voor 28% gewijzigd door gorgi_19 op 18-04-2005 18:31 ]


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:44

gorgi_19

Kruimeltjes zijn weer op :9

Zet tussendoor eens een aantal traces neer en probeer te achterhalen welke stukken code langzaam zijn en waar de vertraging zit. Ook gok ik dat met deze lap code de meeste mensen het topic snel weg klikken.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • arievdonk
  • Registratie: Oktober 2004
  • Laatst online: 21-02-2024
Oke bedankt alvast voor de snelle reactie..
Ik zal er een aantal traces tussen zetten

En vervolgens hier het resultaat posten

Acties:
  • 0 Henk 'm!

Verwijderd

offtopic:
kun je de source niet uploaden in een .phps bestand? of anders met [code] tags eromheen.. is een stuk beter leesbaar.
Op deze manier zien we iMHO nooit waar het aan zou kunenn liggen

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Zet (nu en in het vervolg) even [code] tags om je code heen, dat leest wat makkelijker. :)

Zo'n lap code is voor mensen die niet weten waar jij mee bezig bent natuurlijk ondoenlijk om te debuggen. Ik zie in ieder geval geen while/for/andere loop-constructie waar het lang door zou kunnen duren. Wat versta je trouwens onder een lange laadtijd? En doet ie dat op elke server?

[ Voor 7% gewijzigd door NMe op 18-04-2005 17:39 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • arievdonk
  • Registratie: Oktober 2004
  • Laatst online: 21-02-2024
Jah op elke server

0.1345
tot
1.456

[ Voor 86% gewijzigd door arievdonk op 18-04-2005 17:38 . Reden: Te snel ]


Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Je zou de output eens kunnen bufferen met ob_start() en consorten.

Wanneer de verbinding heel traag is, voert de webserver niet het hele bestand in 1 keer uit, maar wordt gewacht tot de client iets binnen heeft.

Dat zou hier het probleem weleens kunnen zijn.

Overigens is 0.13 seconden toch niet slecht?

Acties:
  • 0 Henk 'm!

  • arievdonk
  • Registratie: Oktober 2004
  • Laatst online: 21-02-2024
Oke dat zal ik eens proberen mischien dat het scheelt..

Ik ben gewend dat mijn parstime rond de 0.00235 licht, dan is het dus als het tussen de 0.13..... en 1.2..... vrij hoog....

maar mischien dat het scheelt als ik ga bufferen..

Alvast bedankt

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

1.2 seconden is, voor wat je hier laat zien, inderdaad vrij langzaam. Maar ik weet niet wat er in je includes zit, want die laat je (gelukkig :P) niet allemaal zien hier. Kijk eens of daar niets geks gebeurt. Misschien kun je nog wat loops optimaliseren ofzo?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • arievdonk
  • Registratie: Oktober 2004
  • Laatst online: 21-02-2024
De enige include die ik nog heb is van mijn statistieken(die ik overigens niet zelf gemaakt hebt)
En die zijn erg uitgebreid, Ik zal eens kijken wat hij doet zonder het statistieken script.

Dat is het ook niet...nouw dan weet ik het ook niet meer en ga ik wel terug naar de "tekentafel".

Toch vriendelijk bedankt voor alle hulp

[ Voor 28% gewijzigd door arievdonk op 18-04-2005 23:52 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Zet gewoon op een paar strategische punten een echo van de parse time tot dan toe neer. Kijk waar de meeste tijd in zit, en ga dat stukje code optimaliseren. Dan ben je er. :)

En ik zie trouwens zeker 6 verschillende includes die je niet laat zien verder. ;) (Dat hoeft ook niet, we kunnen niets met nog meer code. :) Je kan beter even zelf testen zoals hierboven al een paar keer vermeld is nu.)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

-NMe- schreef op maandag 18 april 2005 @ 23:55:
En ik zie trouwens zeker 6 verschillende includes die je niet laat zien verder. ;) (Dat hoeft ook niet, we kunnen niets met nog meer code. :) Je kan beter even zelf testen zoals hierboven al een paar keer vermeld is nu.)
Mwoah, dat maakt opzich niet uit, het timen begint hij pas ná de includes :)

Acties:
  • 0 Henk 'm!

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 20-09 23:15

NetForce1

(inspiratie == 0) -> true

eamelink schreef op dinsdag 19 april 2005 @ 00:14:
[...]


Mwoah, dat maakt opzich niet uit, het timen begint hij pas ná de includes :)
Maar er worden wel functies uitgevoerd die in die includes staan

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Maar dat zie je niet terug in de parsetijd, want de teller begint pas te lopen ná de includes ...
Stel je voor dat je dit doet:
PHP:
1
2
3
4
5
6
<?php
//heel veel en trage code
*start timer*
echo 'hello world';
//stop timer
echo $tijd_tussen_start_en_stop;

Dan zou je dat volgens jou terugzien in de parsetime ;)

[edit]
Even voor de duidelijkheid, je zou het wel merken in de parsetime, maar niet zien staan bij het printen van je parsetime.

[ Voor 21% gewijzigd door blizt op 19-04-2005 00:58 ]

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

blizt: Het maakt nogal een verschil als er in een include een functie staat, die je in het hoofdscript aanroept. In dat geval maakt het namelijk wel degelijk uit voor je parsetime, en dat ga je ook zien in het afdrukken. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Sorry, had niet goed gelezen. Zal de tijd de schuld maar geven. :z

United we stand, and divided we fall

Pagina: 1