[PHP] 40 sekunder genereringstid

Permalänk
Medlem

[PHP] 40 sekunder genereringstid

Har precis flyttat från one.com till min egen server, som kanske inte är den bästa men borde klara mitt script på mindre än 40 sekunder.

Servern är en P2a 300Mhz med 256MB minne, med Debian och LAMP konfiguration.

koden ser ut såhär:

<?php // Överklockningsdatabasen // PHP databassystem skrivit av XaaR // detail.php $starttime = explode(' ', microtime()); $starttime = $starttime[1] + $starttime[0]; session_start(); define('ONLINE', true); include("include/mysql.php"); $CpuZvalidate = 0; ?> <html> <head> <title>Överklockningsdatabasen</title> <link href="css/style.css" rel="stylesheet" type="text/css" media="all"> <link href="css/detail.css" rel="stylesheet" type="text/css"> <?php include("style/head.php"); ?> <script src="jquery.js" type="text/javascript" language="javascript"></script> <script src="jquery.form.js" type="text/javascript" language="javascript"></script> <script type="text/javascript"> $(document).ready(function() { $('#loginForm').ajaxForm({ dataType: 'json', success: processLoginForm}); $('#logoutForm').ajaxForm({ dataType: 'json', success: processLogoutForm}); }); function processLogoutForm(data){ if(data.success == 1){ alert("Du har loggats ut!"); window.location.reload( false ); } else { alert("D: is the shit"); } } function processLoginForm(data){ if(data.login == 1){ alert("Du har loggats in!"); window.location.reload( false ); } else { alert("Kunde inte logga in:"); } } </script> </head> <body> <?php include("style/logo.tpl"); /* inkludera logon */?> <?php include("style/nav.tpl"); /* inkludera navigeringslisten */ ?> <div id="login"> <?php if($_SESSION['login'] == null){ ?> <form id="loginForm" action="login.php" method="post">Användarnamn: <input type="text" name="user"> Lösenord: <input type="password" name="pass"> <input type="submit" value="Logga in" name="submit"></form> <?php } elseif($_SESSION['login'] == true){ ?> <form action="logout.php" method="post" id="logoutForm">Du är inloggad som <b><?php echo $_SESSION['user'] ?></b>.    <input type="submit" value="Logga ut" /></form> <?php } ?> </div> <div id="main"> <div id="maincont"> <?php if($_GET['type'] == "cpu") { echo '<h1>Processorer:</h1>'; } if($_GET['type'] == "gpu") { echo '<h1>Grafikkort:</h1>'; } //kollar om id är en siffra. $id = isset($_GET['id']) ? intval($_GET['id']) : 0; if($id == 0){ die("Felaktigt id"); } ?> <table width="600" class="resulttable" cellspacing="1" frame="box" rules="rows" bordercolor="#76B2DF"> <tr> <td colspan="2" class="top" align="center">Detaljerad information</td> </tr> <?php if($_GET['type'] == "cpu") { $sql = "SELECT res.date, res.fsb, res.multipiler, res.mhzClock, res.percent, res.vcore, res.memModel, res.memStd, res.memOc, res.vmem, res.vmemStd, res.timings, res.Bus, res.moderkort, res.moderkortBios, res.cpuLoad, res.cpuIdle, res.kylningstyp, res.kylning, res.cpuz, res.kommentar, user.username, cpu.fullname, cpu.core, cpu.cpuImg, cpu.socket, cpu.speed, cpu.chache, cpu.architecture, cpu.stepping, cpu.multipiler AS stdmultipiler, cpu.fsb AS fsbstd FROM cpu_results AS res, phpbb_users AS user, cpu WHERE res.id = {$id} AND res.user_id= user.user_id AND res.cpuId = cpu.id"; $resultat = mysql_query($sql) or die(mysql_error()); $rad = mysql_fetch_assoc($resultat); switch($rad['kylningstyp']){ case 1: $kylningstyp="Standard";break; case 2: $kylningstyp="Luft";break; case 3: $kylningstyp="Vatten";break; case 4: $kylningstyp="Kompressor";break; case 5: $kylningstyp="Flytande kväve";break; case 6: $kylningstyp="Annat";break; default: $kylningstyp="Ingen tydligen =/"; } $CpuZ=get_headers("http://valid.x86-secret.com/cache/banner/".substr($rad['cpuz'],43).".png",1); if ($CpuZ['Content-Type']== "image/png") { $CpuZvalidate = 1; } // $ob = ""; echo ' <tr><td>Användare: </td><td align="right">' . $rad['username'] . "</td></tr>\n"; echo ' <tr><td>Insckickad:</td><td align="right">' . date("Y-m-d H:i:s",$rad['date']) . "</td></tr>\n"; echo ' <tr><td colspan="2"><div id="cpuimg"><img src="images/cpu/'.$rad['cpuImg'].'"></div><div id="cpudata">'.$rad['fullname'].' '.$rad['speed'].'Mhz<br> '.$rad['core'].'('.$rad['architecture'].')<br> Stepping: '.$rad['stepping'].'<br> Cache: '.$rad['chache'].'<br> Socket '.$rad['socket'].'<br> Standard FSB: '.$rad['fsbstd'].'Mhz<br> Standard multipiler: '.$rad['stdmultipiler'].'</div></td></tr>'; echo ' <tr><td>Överklockad till:</td><td align="right">'. $rad['mhzClock'] . "Mhz</td></tr>\n"; echo ' <tr><td>Procentuell överklockning:</td><td align="right">'. $rad['percent'] . "%</td></tr>\n"; echo ' <tr><td>Bus:</td><td align="right">' . $rad['fsb'] . "Mhz</td></tr>\n"; echo ' <tr><td>Multipiler:</td><td align="right">' . $rad['multipiler'] . "</td></tr>\n"; echo ' <tr><td>FSB/HT Link: </td><td align="right">' . $rad['Bus'] . "Mhz</td></tr>\n"; echo ' <tr><td>Spänning:</td><td align="right">' . $rad['vcore'] . "v</td></tr>\n"; echo ' <tr><td>Minne:</td><td align="right">' . $rad['memModel'] . "</td></tr>\n"; echo ' <tr><td>vMem:</td><td align="right">' . $rad['vmem'] . "v</td></tr>\n"; echo ' <tr><td>vMem standard:</td><td align="right">' . $rad['vmemStd'] . "v</td></tr>\n"; echo ' <tr><td>Minnes frekvens:</td><td align="right">Standard:' . $rad['memStd'] . "Mhz<br>Överklockat: " . $rad['memOc'] . "Mhz</td></tr>\n"; echo ' <tr><td>Timings: </td><td align="right">' . $rad['timings'] . "</td></tr>\n"; echo ' <tr><td>Moderkort:</td><td align="right">' . $rad['moderkort'] . "</td></tr>\n"; echo ' <tr><td>BIOS:</td><td align="right">' . $rad['moderkortBios'] . "</td></tr>\n"; echo ' <tr><td>Temperatur (idle/load): </td><td align="right">' . $rad['cpuIdle'] ."/". $rad['cpuLoad']. "ºC</td></tr>\n"; echo ' <tr><td>Kylningstyp: </td><td align="right">'.$kylningstyp."</td></tr>\n"; echo ' <tr><td>Kylning: </td><td align="right">' . $rad['kylning'] . "</td></tr>\n"; if($CpuZvalidate==1){ echo ' <tr><td>CPU-Z: </td><td align="right"><a href="' . $rad['cpuz'] . "\"><img src=\"http://valid.x86-secret.com/cache/banner/".substr($rad['cpuz'],43).".png\"></a></td></tr>\n"; }else{ echo ' <tr><td>CPU-Z: </td><td align="right"><span style="color:red">Detta resultat är inte validerat, var god ange en giltig Cpu-Z länk för att validera</span></td></tr>'."\n"; } echo ' <tr><td colspan="2">Kommentarer:<br>' . $rad['kommentar'] . "</td></tr>\n"; echo $ob; } /*if($_GET['type'] == "gpu") { $sql = "SELECT * FROM ocdb_results_GPU WHERE id=$id"; $resultat = mysql_query($sql); while ($rad = mysql_fetch_assoc($resultat)) { echo ' <tr><td>Användare: </td><td align="right">' . getuser($rad['user_id']) . '</td></tr> '; echo ' <tr><td>Insckickad:</td><td align="right">' . $rad['date'] . "</td></tr> "; echo ' <tr><td>Grafikkort:</td><td align="right">' . $rad['model'] . "</td></tr> "; echo ' <tr><td>Överklockning kärnan</td><td align="right">' . $rad['core'] . '</td></tr> '; echo ' <tr><td>Överklockning minnen</td><td align="right">' . $rad['mem'] . '</td></tr> '; echo ' <tr><td>Standard kärnan</td><td align="right">' . $rad['core_std'] . '</td></tr> '; echo ' <tr><td>Standard minnen</td><td align="right">' . $rad['mem_std'] . '</td></tr> '; echo ' <tr><td>Temperatur:</td><td align="right">' . $rad['temp'] . '</td></tr> '; echo ' <tr><td>Prestanda i ' . $rad['test'] . '</td><td align="right">' . $rad['test_result'] . '</td></tr> '; echo ' <tr><td colspan="2">Kommentarer:<br>' . $rad['comment'] . '</td></tr> '; } }*/ ?> <tr><td colspan="2" align="right"><?php echo '<a href="edit.php?type=' . $_GET['type'] . '&id=' . $_GET['id'] . '">Ändra resultat</a>'; ?></td></tr> </table> <p><br /><br />Gillade du den här sidan?<br /><a href="sprid.php">Hjälp mig gärna att sprida ut kännedommen!</a></p> </div> <div id="copyright"> <?php include("style/copyright.tpl"); ?> </div> </div> <div id="right"> <table border="0" class="ad"> <tr> <td align="center">Reklam</td> </tr> <tr> <td><?php include("include/verticalad.php"); ?></td> </tr> </table> </div> <?php include("style/googleanalytics.html"); ?> </body> </html> <?php mysql_close(); $mtime = explode(' ', microtime()); $totaltime = $mtime[0] + $mtime[1] - $starttime; echo '<!-- page loaded int'.$totaltime.' secounds -->'; ?>

Hos One.com så tar det ca 0.1 sekunder, medans det tar 40 sekunder på min sernern, den skillnaden får mig att tro att det måste vara något konstigt i mitt script, eftersom att phpBB3 fungerar hur bra som helst.

Permalänk
Medlem

Försök ta reda på vad det är som tar tid, för det är något som är galet när det tar 40sek att generera en sida.

Min gissning är att det är get_headers() som tar tid, så börja där

Permalänk
Medlem

Min gissning är att joinen tar tid. Försök ge MySQL lite mer minne alternativt finetuna SQL-koden eller (hujedamig) gör joinen i PHP.

Permalänk
Medlem

Tjafras har rätt med att det är get_headers() som tar tid. Misstänker att det är pga min router som tar tid på sig med DNS uppslagen. Förhoppningsvis så kommer jag inte att ha dom problemen när jag har flyttat servern nästa helg.