Laufzeit unnormal lang

*gähhn*

guten morgen....
aber das mit der leitung sollte doch egal sein, das php uffen server ausgefuehrt oder irre ich da? sei es wie es sei, erstmal kaffee, dann probiere ich deinen vorschlag..besten dank kerwin
 
mit der Leitung meinte ich eher, wie stark gerade traffic von diesem Server gezogen wird. Sprich, wieviel upload der Server zu dir aufbringen kann. Denn rund 250 Tabellen a 200 Zeichen sind rund 50.000 Zeichen was rund 50kb entspricht. was ca 10Sekunden mit dem Modem bedeutet bei voller auslastung. Hast nebenbei noch ICQ, IRC am laufen, brauchste schon 11 Sekunden.

Und die Serverauslastung hängt davon ab, was die 1000 anderen Benutzer mit ihrem webpacket machen.
 
Ermittle doch einfach die reine Zeit, die PHP benötigt, um die Schleife komplett zu durchlaufen. Vor der Schleife fügst Du diese Zeile ein:
PHP:
$t_start = time();
und nach der Schleife:
PHP:
echo (time() - $t_start) . ' Sekunden';
Dann siehst Du, ob die Schleife so lange braucht oder die Übertragung.

snuu
 
genau...habe ich auch schon gemacht....
und wie oben erwaehnt...gebe ich z.b. einfach nur 2 werte innerhalb der schleife aus, wie etwa: echo $wert1 $wert2
dann gehts alles fix....aber umso mehr ich innerhalb der schleife ausgebe...umso langsamer wirds...da es sich aber immer nur um htmlcode handelt und nicht etwa um schwierige if abfragen oder berechnungen, kann ich das nicht nachvollziehen. mir leuchtet nicht ein, wiso der interpreter für normalen htmlcode solange braucht...bei phpmyadmin beispielsweise gehts ja auch schnell...

oder ist es so, dass die zeitmessung von der menge der uebertragenden daten(die bei einer table ja deutlich hoeher ist) beeinflusst wird?

danke und gruss, doba
 
Dann solltest du die Abfrage einschränken:
PHP:
<?php
  $offset = ( isset($_GET['offset']) && !empty($_GET['offset']) && is_int(intval($_GET['offset'])) )
    ? intval($_GET['offset'])
    : 0;
  $rowcount = ( isset($_GET['rowcount']) && !empty($_GET['rowcount']) && is_int(intval($_GET['rowcount'])) )
    ? intval($_GET['rowcount'])
    : 20;

  function getmicrotime() {
    list($usec, $sec) = explode(" ",microtime());
    return( (float)$usec + (float)$sec );
  }

  $time_start = getmicrotime();
  $query = "
	SELECT
	        `name`,
	        `visits`,
	        `uniques`
	  FROM
	        `tabelle`
	  LIMIT
	        ".$offset.", ".$rowcount."
	";
  $result = mysql_query($query);
  while( $kategorie = mysql_fetch_array($result, MYSQL_ASSOC) ) {
  echo '   <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#0099CC">
     <tr>
       <td><img src="bar.gif" width="5" height="18"></td>
       <td><b><a href="projekt_detail.php?kat_id=' , $kat_id , '">' , htmlentities($kategorie['name']) , '</a></b></td>
       <td>' , $kategorie['visits'] , '</td>
       <td>' , $kategorie['uniques'] , '</td>
       <td>otto</td>
       <td>&nbsp;</td>
       <td>&nbsp;</td>
       <td>&nbsp;</td>
       <td>&nbsp;</td>
     </tr>
</table>';
  }
  $time_end = getmicrotime();
  echo '<a href="?offset='.($offset+$rowcount).'" style="display:block">n&auml;chsten '.$rowcount.' Eintr&auml;ge</a>';
  echo '<p>Diese Abfrage dauerte '.sprintf("%.3f", $time_end - $time_start).' Sekunden.</p>';
?>
 
jo...dann bleibt mir wohl nix anderes uebrig...
danke fuer den code gumbo, dat erspart mir einiges an
tippserei....werd nu antesten...

bis denne doba
 
jo...laeuft astrein...
selbst mit LIMIT 100 brauch er nicht laenger wie 1,5 sek....

nochmals thx...thema sollte damit durch sein.

ps gumbo
beim code-betrachten kommt mir in den sinn, dass ich demnaechst mal meine
code-schreibweise neu ueberpruefen sollte....das hier schaut arg komprimiert aus. anfangs scheints fuer mich unuebersichtlich, aber beim genaeueren hinschauen kommt auch mir die logik ins hirn ;-)

wirklich sauber!
 
Noch ein kleiner Nachtrag:
&nbsp;&nbsp;&nbsp;&bdquo;Mal das MYSQl_ASSOC weglassen welches man ja nicht unbedingt braucht, etc.&rdquo;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&ndash;Kerwin
Wenn es um die Geschwindigkeitsoptimierung einer Datenbankabfrage geht, ist gerade die Angabe des Ergebnistyps bei der mysql_fetch_array()-Funktion, auch wenn diese optional ist, von Bedeutung, da sich dadurch die Größe des Ergebnisfeldes halbiert:
&nbsp;&rsaquo;&rsaquo;&nbsp;PHP: mysql_fetch_array – Manual
 
Zurück