Willkommen Gast. Bitte Einloggen oder Registrieren
 
Sprache wählen:
 
  Last Script Version: 5.3

  ÜbersichtHilfeSuchenEinloggenRegistrieren  
 
Seitenindex umschalten Seiten: 1
Thema versenden Drucken
Größe pattern_referer.dta / Abbruch bei Cache akt. (Gelesen: 16277 mal)
hr3
Global Moderator
*****
Offline


Es gibt nichts Gutes/
außer: Man tut es. E.Kästner

Beiträge: 1126
Germany
Geschlecht: male
Größe pattern_referer.dta / Abbruch bei Cache akt.
12.05.11 um 17:51:01
 
Bei Statistiken mit großen Datenmengen (viele Bewegungen, Daten werden schon seit Jahren gesammelt und/oder viele unterschiedliche und lange Referer-Informationen) kann das Programm cache_creator.php beim Erstellen und Aktualisieren durch Überschreiten von Memory Limit (ggf. auch MaxExecutionTime) in eine Schleife laufen. Dieses ist unabhängig von Textdatei- oder Datenbank-Installation. Maßnahmen:
  • Memory Limit/MaxExecutionTime erhöhen
  • Erweiterte Einstellungen / Anzeige / Detaillierte Referer-Informationen anzeigen? deaktivieren
  • Daten reorganisieren
Die ersten Variante ist bei externen Web-Servern selten möglich. Die zweite kann möglicherweise schon angewendet und damit ausgereizt sein. Bleibt nur noch die dritte. Mit http://www.php-web-statistik.de/cgi-bin/yabb/YaBB.pl?num=1298491676 kann der Aufzeichnungszeitraum bereinigt werden. Das führt in der Regel auch zu einer Verkleinerung der referer-Daten, ist aber nicht unbedingt der optimale und in allen Fällen praktikable bzw. rettende Ansatz. Ein ReDisign ist als Lösung außerhalb des Standards nicht zu empfehlen. Also hab ich über Behelfslösungen nachgedacht.

Der erste Schritt sollte immer eine Analyse sein. Dazu das folgende Programm. Es liest die pattern_referer.dta bzw. referrer-DB-Tabelle und zeigt die Datenkonstellationen. Beispiel-Anzeige im Folgenden.

Zur Steuerung können folgende GET- ,POST- bzw. Session/Cookie-Parameter angegeben werden. Die Default-Werte sind false, soweit nicht anders beschrieben.
asb=xxx // auf xxx Stellen begrenzen, default=200
aus=true // log/pattern_referer_n.dta erzeugen (nur Text-Datei-Installationen)
hdz=true // Hex durch Zeichen ersetzen
dop=true // auf doppelte Original-Schlüssel prüfen
doa=true // doppelte Original-Schlüssel anzeigen
dbp=true // auf doppelte begrenzte Schlüssel prüfen
dba=true // doppelte begrenzte Schlüssel anzeigen

Das Programm kann im laufenden Betrieb mit allen Parameterkombinationen immer wieder aufgerufen werden. Erst wenn das Überarbeiten der referer-Datei mit der richtigen Länge als Lösung angesehen wird, sollte es im Wartungsmodus ausgeführt und dann die Originaldatei durch die neu erzeugte ersetzt werden.
Wie immer nach Datensicherung und ohne Gewähr.
Danach muß der Cache neu erstellt und
die Anzeigen gewissenhaft geprüft
werden.

Das Umsetzen der Hex-Werte in (lesbare) Zeichen ist optional, verringert der Größe nur minimal, erhöht jedoch die Lesbarkeit.

Das begrenzen der Referer-Länge kann die Datei unter Umständen dramatisch verkleinern. In der Regel steht nach ca. Stelle 100 nichts wirklich relevantes mehr. Allerdings geht damit die LINK-Funktion verloren. Ob und wie diese Programm eingesetzt wird muß jeder für sein spezielles Umfeld entscheiden. Es kann auch als Muster dienen und durch eigenen Logiken ergänzt werden. Z.B. inteligentes Kürzen des Satzes um bestimmte überflüssige Infos oder nach festgelegten Begriffen (wie z.B. .jpg, .html usw.). Ich muß noch darauf hinweisen, dass es im Test schon mal vorgekommen ist, dass in einem Satz <a href= stand und das zugehörige Ende abgeschnitten wurde. Dann werden alle folgenden Zeilen aus pattern-referer.dta unterstrichen als Link angezeigt. Kann mit einem Editor geprüft und korrigiert werden.

Auch ohne, aber erst Recht nach dem Begrenzen von Zielen sind doppelte Schlüssel möglich. Diese werden hier nur aufgezeigt. Zum Löschen ist gleichzeitig eine Korrektur der logdb-Dateien erforderlich. Damit läßt sich die Datei nochmals erheblich verkleinern.

Diese Maßnahmen wirken sich auch postiv auf die Verarbeitungszeiten aus. Das aktualisieren der Cache-Dateien geht schneller (ok. passiert nicht permanent und ist für Seiten-Nutzer nur spührbar, wenn gerade der Intervall für autom.Aktualisieren erreicht wurde) aber auch die Cache-Datei selber wird gravierend kleiner und das merkt jeder, der den Counter angezeigt bekommt. Sie war vor der Bearbeitung 10MB und danach 0,5Mb groß und muß  bei jedem Aufruf komplett eingelesen werden. Siehe auch http://www.php-web-statistik.de/cgi-bin/yabb/YaBB.pl?num=1304324086

Um die Datei nicht wieder aufzublähen und mühsam immer wieder zu reorganisieren, ist eine Anpassung der track.php um ein Begrenzen des Referers nach den gleichen Regeln erforderlich.

Für DB-Installationen ist nur die Analyse verfügbar. Die Daten müssen dann manuell bearbeitet werden.
Zum Seitenanfang
« Zuletzt geändert: 22.06.11 um 22:37:29 von hr3 »  
 
IP gespeichert
 
hr3
Global Moderator
*****
Offline


Es gibt nichts Gutes/
außer: Man tut es. E.Kästner

Beiträge: 1126
Germany
Geschlecht: male
Re: Größe pattern_referer.dta / Abbruch bei Cache akt.
Antwort #1 - 12.05.11 um 19:05:31
 
Zitat:
doppelte Schlüssel
http;//www.google.de/search?q=java projekte
http;//www.google.de/search?q=java projekte

...
http;//www.google.de/imgres?imgurl=http://www.xxxxxx.de/images/arts.words.xxxxxxxx-xxxxx-xxxxxxx-xxxxx.jpg&imgrefurl=http://www.xxxxxx.de/home.arts.wo~

16 doppelte Original-Schlüssel = 1.366 Byte
17.548 doppelte begrenzte Schlüssel = 2.648.329 Byte


Referer mit bis zu Stellen in log/pattern_referer.dta

Zeilen Array
(
    [10] => 1
    [30] => 36
    [40] => 726
    [50] => 5097
    [60] => 5505
    [70] => 3050
    [80] => 1548
    [90] => 640
    [100] => 449
    [120] => 325
    [140] => 704
    [160] => 525
    [180] => 76
    [200] => 39
    [250] => 63
    [300] => 26
    [350] => 330
    [400] => 7508
    [450] => 6992
    [500] => 2308
    [600] => 790
    [700] => 133
    [800] => 4
    [900] => 2
    [1000] => 5
    [1100] => 1
    [1700] => 1
)
36.884 Zeilen

Byte Array
(
    [10] => 9
    [30] => 966
    [40] => 27538
    [50] => 234456
    [60] => 304810
    [70] => 198839
    [80] => 115828
    [90] => 54308
    [100] => 42731
    [120] => 35899
    [140] => 92749
    [160] => 77816
    [180] => 12769
    [200] => 7438
    [250] => 14000
    [300] => 7113
    [350] => 111750
    [400] => 2869210
    [450] => 2951204
    [500] => 1080390
    [600] => 429630
    [700] => 83531
    [800] => 2972
    [900] => 1710
    [1000] => 4805
    [1100] => 1039
    [1700] => 1658
)
8.765.168 Byte
3.943.884 Byte bei Begrenzung auf 150 Stellen
1.295.555 und (informativ) nach eliminieren doppelter Schlüssel
413.002 Hex durch Zeichen ersetzt
log/pattern_referer_n.dta erzeugt
*** Ende *** Verarbeitungszeit: 16 Sekunden
Zum Seitenanfang
« Zuletzt geändert: 22.06.11 um 22:38:24 von hr3 »  
 
IP gespeichert
 
hr3
Global Moderator
*****
Offline


Es gibt nichts Gutes/
außer: Man tut es. E.Kästner

Beiträge: 1126
Germany
Geschlecht: male
Re: Größe pattern_referer.dta / Abbruch bei Cache akt.
Antwort #2 - 12.05.11 um 19:07:08
 
Code:
<?php $start_time=time();
### letzte Änderung 23.06.11 11:24
### pattern_referer.dta analysieren
### http://www.php-web-statistik.de/cgi-bin/yabb/YaBB.pl?num=1305215461/0#2

// Details von Seitenherkünfte werden bei großen Dateien teilweise garnicht mehr aufgebaut
// aus index.php funktioniert der Link nach dem Kürzen nicht mehr
// "<a href=" führt zu Fehler

// folgende Variablen können als Get-, POST- oder SESSION-Parameter übergeben werden:
// Beispiel: ?asb=150&aus=true&hdz=true&dop=true&doa=true&dbp=true&dba=true
if ((isset($_REQUEST['asb']))&&(is_numeric($_REQUEST['asb']))) {$auf_stellen_begrenzen=$_REQUEST['asb'];} else {$auf_stellen_begrenzen=200;}
if ((isset($_REQUEST['aus']))&&($_REQUEST['aus']=='true')) {$aus=true;} else {$aus=false;} // Datei ausgeben
if ((isset($_REQUEST['hdz']))&&($_REQUEST['hdz']=='true')) {$hdz=true;} else {$hdz=false;} // Hex durch Zeichen ersetzen
if ((isset($_REQUEST['dop']))&&($_REQUEST['dop']=='true')) {$dop=true;} else {$dop=false;} // auf doppelte Original-Schlüssel prüfen
if ((isset($_REQUEST['doa']))&&($_REQUEST['doa']=='true')) {$doa=true;} else {$doa=false;} // doppelte Original-Schlüssel anzeigen
if ((isset($_REQUEST['dbp']))&&($_REQUEST['dbp']=='true')) {$dbp=true;} else {$dbp=false;} // auf doppelte begrenzte Schlüssel prüfen
if ((isset($_REQUEST['dba']))&&($_REQUEST['dba']=='true')) {$dba=true;} else {$dba=false;} // doppelte begrenzte Schlüssel anzeigen

set_time_limit(0);

$v=array('%2520','%20','%21','%22','%23','%24','%25','%26','%27','%28','%29','%2A','%2B','%2C','%2D','%2E','%2F','%3A','%3B','%3C','%3D','%3E','%3F','%40','%5B','%5C','%5D','%5E','%5F','%60','%7B','%7C','%7D','%7E');
$n=array(    " ",  " ",  "!",  '"',  "#",  "$",  "%",  "&",  "'",  "(",  ")",  "*",  "+",  ",",  "-",  ".",  "/",  ":",  ";",  "<",  "=",  ">",  "?",  "@",  "[", "\\",  "]",  "^",  "_",  "`",  "{",  "|",  "}",  "~");

$x=0;
$f1=false;
$f2=false;
$f3=false;
$lts=0;
$b=0;
$bb=0;
$hdz_anz=0;
$do['']='';
$doz=0;
$dob=0;
$db['']='';
$dbz=0;
$dbb=0;
$kz_u=false;
$path='../'; // ggf. anpassen

include($path.'config/config.php');
#										$db_active=1;	// Test
if ($db_active==1) {
 include($path.'config/config_db.php');
 $db_suffix='_referrer';
 $file='DB('.$db_host.' '.$db_name.' '.$db_prefix.$db_suffix.')';
 if (!mysql_pconnect($db_host,$db_user,$db_password)) {die(mysql_error());}
 if (!mysql_select_db($db_name)) {die(mysql_error());}
 $result=mysql_query('SELECT referrer,id FROM '.$db_prefix.$db_suffix.';');
 if (!$result) {die(mysql_error());}
 $aus=false;
} else {
 $file='log/pattern_referer.dta';
 $handle=fopen($path.$file,'r');
 if ($aus) {$file_n='log/pattern_referer_n.dta';$handle_n=fopen($path.$file_n,'w');}
}

do {
 $x++;

 if ($db_active==1) {if (!$a=mysql_fetch_array($result)) {break;}}
 else {
  if (feof($handle)) {break;}
  $buffer=fgets($handle,6000);
  $buffer=str_replace(array("\r","\n"),array('',''),$buffer);
  if ($buffer=='') {continue;}
  $a=explode('|',$buffer);
 }

 $sl=strlen($a[0]);
 $b=$b+$sl;
 $f=100;
 if ($sl<500) {$f=50;}
 if ($sl<200) {$f=20;}
 if ($sl<100) {$f=10;}
 $z=(floor(($sl-1)/$f)+1)*$f;
 if (!isset($s[$z])) {$s[$z]=0;$s1[$z]=0;}
 $s[$z]++;
 $s1[$z]=$s1[$z]+$sl;

 if ($dop) {
  if (array_key_exists($a[0],$do)) {
   ueberschrift();
   if ($doa) {echo '<font color="red">'.$a[1].'|'.$a[0].'</font><br>';}
   $doz++;
   $dob=$dob+strlen($a[0]);
  } else {$do[$a[0]]=true;}}

 if ($hdz) {
  $a[0]=str_replace($v,$n,$a[0]);
  $hdz_anz=$hdz_anz+(($sl-strlen($a[0]))/2);}

 if (strlen($a[0])>$auf_stellen_begrenzen) {$a[0]=substr($a[0],0,$auf_stellen_begrenzen).'~';}
 $bb=$bb+strlen($a[0]);
 if ($aus) {fwrite($handle_n,$a[0].'|'.$a[1])."\n";}

 if ($dbp) {
  if (array_key_exists($a[0],$db)) {
   ueberschrift();
   if ($dba) {echo $a[1].'|'.$a[0].'<br>';}
   $dbz++;
   $dbb=$dbb+strlen($a[0]);
  } else {$db[$a[0]]=true;}}
} while (true);

if ($db_active!=1) {
 fclose($handle);
 if ($aus) {fclose($handle_n);}
}

if ($dop) {echo '<br><font color="red">'.number_format($doz,0,',','.').' doppelte Original-Schlüssel = '.number_format($dob,0,',','.').' Byte</font><br>';}
if ($dbp) {echo number_format($dbz,0,',','.').' doppelte begrenzte Schlüssel = '.number_format($dbb,0,',','.').' Byte<br><br><br>';}
echo 'Referer mit bis zu Stellen in '.$file.'<hr><pre>';
ksort($s); echo 'Zeilen '; print_r($s);
echo number_format($x,0,',','.').' Zeilen<hr>';
ksort($s1); echo 'Byte '; print_r($s1);
echo number_format($b,0,',','.').' Byte<hr>';
echo number_format($bb,0,',','.').' Byte bei Begrenzung auf '.$auf_stellen_begrenzen.' Stellen<br>';
if ($dbb) {$bb=$bb-$dbb;
 echo number_format($bb,0,',','.').' und (informativ) nach eliminieren doppelter Schlüssel<br>';}
if ($hdz) {echo number_format($hdz_anz,0,',','.').' Hex durch Zeichen ersetzt<br>';}
if ($aus) {echo $file_n.' erzeugt<br>';}
echo '*** Ende *** Verarbeitungszeit: '.(time()-$start_time).' Sekunden';

function ueberschrift() {
 global $kz_u;
 if (!$kz_u) {$kz_u=true; echo 'doppelte Schlüssel<hr>';}}
?> 


Voraussetzung Datensicherung. Ergebnis prüfen. Ohne Gewähr.
Zum Seitenanfang
« Zuletzt geändert: 23.06.11 um 11:54:09 von hr3 »  
 
IP gespeichert
 
hr3
Global Moderator
*****
Offline


Es gibt nichts Gutes/
außer: Man tut es. E.Kästner

Beiträge: 1126
Germany
Geschlecht: male
Re: Größe pattern_referer.dta / Abbruch bei Cache akt.
Antwort #3 - 12.05.11 um 22:32:59
 
Da das Datenvolumen Einfluß auf die Aufbereitungsgeschwindigkeit hat, habe ich mit den oben protokollierten Testdaten die folgende Meßreihe ermittelt. Im meinem Fall stellte sich heraus, dass Floatbox das entscheidende Kriterium war und deaktiviert werden mußte. Siehe http://www.php-web-statistik.de/cgi-bin/yabb/YaBB.pl?num=1305231273/0#0

Dennoch ist aus den Differenzzeiten die Auswirkung der Datenmenge und entsprechenden Einstellungen gut erkennbar.

Ich würde mich freuen, wenn auch anderer ihre Meßergebnisse hier einstellen würden. Darüber können Engpässe erkannt und ggf. generelle Maßnahmen abgeleitet werden.

Code:
//							4.4.00 Text-Dateien, langsamer Testrechner (alle Floatbox-Anzeigen extrem langsam)
//											Referer begr. auf 100 Stellen
//													Ursprungswerte in DB
//  Einstellung:
//   Creator Lesezeilen					5000
//   Index Creator Lesezeilen				30000
//   Detaillierte Referer-Informationen anzeigen?	ja		nein		ja		ja
//  Zeiten des Users Abfragen für Aufbau (bis auf cache und Index erstellen mit F5) von:
//   Cache neu erstellen			Min	6:25		5:14		4:00		4:50
//   Index neu erstellen				3:00
//   sysinfo.php (F5)					0:09		0:09
//   counter (F5)					0:00
//   index.php (gestoppt mit Stat.Cache wird aktuakis.)	0:17		0:13		0:09		0:09
//	       (angezeigt Sek.)				1.72-2.29	0.86-1.69	0.84-1.59	1.80-2.77
//	       (F5)					0:06		0:05		0:04		0:05
//   lasthits.php					0:25		0:22		0:20		0:07
//		  (Tag vor/zurück)			0:05		0:05		0:03		0:03
//   Details von Seitenherkünfte			0:26		0:23		0:18		0:23
//  Größe und Zeilen:
//   cache_visitors.php				 KB	9.655,95	612,24		596,39		9.657,27
//							55.371		19.006		18.985		55.411
//   logdb_backup.dta				 KB	13.675,70
//							303.123
//   pattern_referer.dta			 KB	8.836,96			3.189,11
//							36.882				36.882 

Zum Seitenanfang
« Zuletzt geändert: 23.06.11 um 11:56:30 von hr3 »  
 
IP gespeichert
 
hr3
Global Moderator
*****
Offline


Es gibt nichts Gutes/
außer: Man tut es. E.Kästner

Beiträge: 1126
Germany
Geschlecht: male
alternative Lösungsansätze Cache
Antwort #4 - 13.05.11 um 15:29:07
 
Um die Verarbeitung zu Beschleunigen, die Datei zu verkleinern und Informationen nicht redundant zu halten aber die Logik nicht volkommen zu verändern, könnte als Schlüssel für die Tabellen in der Cach-Datei nicht mehr der Begriff aus den pattern-Dateien, sondern der jeweilige in den logdb-Dateien gespeicherte Index verwendet werden. Die pattern-Dateien brauchen an dieser Stelle nicht mehr gelesen zu werden. Die Cache-Datei wird so klein, dass auch keine eigene Variante für Counter mehr erforderlich ist.

Erst bei der Statistik-Anzeige werden die Daten aus den pattern-Dateien dazu gelesen. Möglicherweise kommt es dabei zu den gleichen Überlauf-Problemen. Dann ggf. Referer nur lesen, wenn auch für die Anzeige (Seitenherkünfte, Zugriffsquellen, Besucher) erforderlich. Heute werden immer alle Seiten in index.php aufbereitet. Dabei muß dann auch $searchwords_archive gebildet werden. Alle Referer mit search-Begriffen mit der Anzahl der Seitenaufruf multipliziert in diese Tabelle übernehmen. Analog bei $searchengines_archive verfahren.

Alternativ Referer bereits beim Speichern aus track.php begrenzen oder intelligent kürzen. Hilft zumindest für Neuinstallationen und neue Daten.
Zum Seitenanfang
 
 
IP gespeichert
 
hr3
Global Moderator
*****
Offline


Es gibt nichts Gutes/
außer: Man tut es. E.Kästner

Beiträge: 1126
Germany
Geschlecht: male
Referer-Länge für Pattern-Datei/DB begrenzen
Antwort #5 - 20.06.11 um 15:59:57
 
Zwei Zeilen in funk/func_pattern_matching.php einfügen und in $auf_stellen_begrenzen gewünschten Wert hinterlegen.

Code:
...
function pattern_matching ( $meta , $value )
 {
  $auf_stellen_begrenzen=100;
  if ((($meta=="referrer")||($meta=="referer"))&&(strlen($value)>$auf_stellen_begrenzen)) {$value=substr($value,0,$auf_stellen_begrenzen).'~';}
//------------------------------------------------------------------
  // Replace all sitename and referer values to the pattern strings coming from the file config/pattern_string_replace.inc
... 


Funktioniert mit Text-Dateien und Datenbank. Ändert keine bestehenden Daten, sondern nur die neu zu schreibenden.
Zum Seitenanfang
« Zuletzt geändert: 23.06.11 um 11:57:49 von hr3 »  
 
IP gespeichert
 
hr3
Global Moderator
*****
Offline


Es gibt nichts Gutes/
außer: Man tut es. E.Kästner

Beiträge: 1126
Germany
Geschlecht: male
doppelte Schlüssel a. pattern_referer.dta reorgani
Antwort #6 - 21.06.11 um 13:50:22
 
Wenn diese Text-Datei (z.B. aus Platz- oder Performance-Gründen) reorganisiert werden soll, kann folgendes Programm dafür verwendet werden. Es korrigiert gleichzeitig die Verknüpfungen in den logdb(*)-Dateien.

Ggf. sind $path und $neu_durchnummerieren anzupassen.

Das Programm kann beliebig oft aufgerufen werden und erstellt 4 Dateien mit der Kennzeichnung *_n.dta mit den neuen Daten. Durch Umbennen müssen die Original-Dateien durch diese ersetzt werden. Anschließend sind Cache- und Index neu zu erstellen.

Code:
<?php
### letzte Änderung 21.06.11 14:48
### doppelte Schlüssel aus pattern_referer.dta reorganisieren
### http://www.php-web-statistik.de/cgi-bin/yabb/YaBB.pl?num=1305215461/0#6

$i=0;
$o=0;
$path='../';						 // ggf. anpassen
$neu_durchnummerieren=true;				 // ggf. anpassen
if (!$neu_durchnummerieren) {echo 'nicht ';} echo 'neu durchnummeriert<br>';

$file='log/pattern_referer.dta';
$handle=fopen($path.$file,'r');
$file_n='log/pattern_referer_n.dta';
$handle_n=fopen($path.$file_n,'w');

while (!feof($handle)) {
 $i++;
 $buffer=fgets($handle,6000);
 if ($buffer!='') {
  $a=explode('|',$buffer);
  $a[1]=str_replace(array("\r","\n"),array('',''),$a[1]);

  if (($o==0)||(!array_key_exists($a[0],$new))) {
   $o++;
   if ($neu_durchnummerieren) {$x=$o;} else {$x=$a[1];}
   $new[$a[0]]=$x;
   fwrite($handle_n,$a[0].'|'.$x."\n");
   $s1=$a[1];}

  $ref[$a[1]]=$new[$a[0]];}}

if ((!$neu_durchnummerieren)&&($s1!=$a[1])) {fwrite($handle_n,$a[0].'|'.$a[1]);}
fclose($handle);
fclose($handle_n);

echo $i.' Zeilen aus '.$file.' eingelesen<br>';
echo $o.' Zeilen in '.$file_n.' ausgegeben<br>';

logdb('log/logdb.dta','log/logdb_n.dta');
logdb('log/logdb_backup.dta','log/logdb_backup_n.dta');
logdb('log/logdb_temp.dta','log/logdb_temp_n.dta');
echo '*** Ende ***';

function logdb($i, $o) {
 global $path,$ref;
 $handle=fopen($path.$i,'r');
 $handle_n=fopen($path.$o,'w');

 while (!feof($handle)) {
  $buffer=fgets($handle,6000);
  if (($buffer!='')&&($buffer!="\n")) {
   $a=explode('|',$buffer);
   if ($a[5]) {$a[5]=$ref[$a[5]];}
   fwrite($handle_n,$a[0].'|'.$a[1].'|'.$a[2].'|'.$a[3].'|'.$a[4].'|'.$a[5].'|'.$a[6].'|'.$a[7].'|'.$a[8]);}}

 fclose($handle);
 fclose($handle_n);
 echo $path.$o.' erstellt<br>';}
?> 


Voraussetzung Datensicherung. Ergebnis prüfen. Ohne Gewähr.
Zum Seitenanfang
« Zuletzt geändert: 23.06.11 um 11:57:34 von hr3 »  
 
IP gespeichert
 
Reimar
Administrator
*****
Offline



Beiträge: 1928
Geschlecht: male
Re: Größe pattern_referer.dta / Abbruch bei Cache akt.
Antwort #7 - 03.08.11 um 15:50:06
 
Das zuletzt hier gepostete Script habe ich nun mal ausprobiert.
Von der Funktionalität her stimmt es soweit, allerdings habe ich da noch 2 kleine Anmerkungen, die man eventuell testen/diskutieren sollte:

1) Vielleicht lässt sich der Code noch optimieren, wenn man anstelle von "fgets" und "explode" einfach "fgetcsv" verwendet?

2) Bei einem Test mit nur der logdb_backup.dta wird bei einem lokalen Durchlauf auf meinem Rechner schon die Scriptlaufzeit von 30 Sekunden überschritten. Das kann natürlich schnell zu einem Problem führen bei Webhostern. Idee dazu was man besser machen könnte?
Zum Seitenanfang
 
 
IP gespeichert
 
hr3
Global Moderator
*****
Offline


Es gibt nichts Gutes/
außer: Man tut es. E.Kästner

Beiträge: 1126
Germany
Geschlecht: male
Re: Größe pattern_referer.dta / Abbruch bei Cache akt.
Antwort #8 - 03.08.11 um 17:47:21
 
zu 1) gern, wenns was bringt
zu 2) kann ich erst einmal nicht nachvollziehen

Habe gerade nochmal getestet:
logdb_backup.dta      24.724,53 KB      576.180 Sätze
pattern_referer.dta      11.497,24 KB         63.487 Sätze
auf meinem lokalen XP Sempron3000+ 15Sek
auf dem externen Linux Server 8Sek

Hatte anscheinend auch keine Probleme: http://www.php-web-statistik.de/cgi-bin/yabb/YaBB.pl?num=1308571236

Mir ist schon klar, dass die Anforderungen an eine Standardlösung komplexer sind, als an meine Quick-and-dirty-Lösung. War auch erst einmal nur für die Experten vorgesehen, die zum Einen ein höheres Datenvolumen und zu Anderen das Wissen und die Möglichkeit haben solche Probleme zu umgehen und sollte ausloten, ob eine simple Lösung machbar ist und überhaupt Bedarf besteht.

Ideen hab ich genug, aber mit dieser Problematik kennt Ihr Euch ja auch bestens aus.
Zum Seitenanfang
 
 
IP gespeichert
 
Seitenindex umschalten Seiten: 1
Thema versenden Drucken