anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 12 Jun, 2025 16:39

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 25 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mo 10 Dez, 2007 20:39 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Harthas hat geschrieben:
[...]MySQL ist nunmal der Flaschenhals in LoGD und macht oft den grossen Teil der Ladezeit aus, daher sollte man darauf achten, die Anzahl der Query's wenn möglich stets zu reduzieren.[...]


Das kann ich so nicht ganz stehen lassen.
Fakt ist: Jeder DB-Query kostet rechenzeit - und wenn man seine Querys zum einen schlecht aufbaut und dann auch noch überflüssig viele davon gebraucht, dann kann das die Performance deutlich drücken.
Auf der anderen Seite ist ein ordentlich konfigurierter MySQL-Server eine Möglichkeit der Datenverwaltung, die man in dieser Form nach unserem Wissenstand und der Zeit, die uns zur Verfügung steht nicht übertreffen lässt!
Es wird vielfach unterschätzt was eigentlich schon dahinter steckt, einen Satz von Daten nur mal zu sortieren... von Verknüpfungen über mehrere Tabellen und der Prüfung von weiteren Abhängigkeiten braucht man also gar nicht reden...

Daher ist es meist ein Kompromiss, den man zwischen Performanz und prioritärem Design (Alle Normalformen durchziehen, keine Redundanzen etc) treffen muss - das merkt man gerade dann, man sich mal überlegt, wie oft welche "Seite" wohl benutzt werden wird.
Daher kann man sich mit Techniken wie Caching oder fehlender Abstraktion, die ja eventuell Redundanzen und andere Probleme wie inkonsitenten Daten hervorrufen können auch einiges an Performance wieder heraus holen.

In anderen Fällen (bei sich häufig ändernden Daten z.B.) hilft das aber alles nichts... deshalb lassen sich hier keine pauschalen Angaben treffen.

nur als kleiner Hinweis ;-)
Auric
:wink:

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 10 Dez, 2007 22:31 
Offline
Profi
Profi
Benutzeravatar

Registriert: So 01 Apr, 2007 09:31
Beiträge: 155
Hm, ok jetzt hab ichs verstanden. Danke für die ausführlichen Ausführungen! :) (Werd wohl einige meiner Skripte überarbeiten müssen...)

Dann versuch ich das jetzt mit cachen, wenns klapp post ichs hier. 8)

Liebe Grüße

_________________
I <3 Eliwood
_______________
$a=b;
$b=a;
$$a=a;
_______________
Faust: Was ist mit diesem Rätselwort gemeint?
- Faust I, Z. 1337


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 13 Dez, 2007 18:50 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Das mit dem Cache hat mir einfach keine Ruh mehr gelassen, drum hab ich mich, ein wenig dran gesetzt, und dabei kam dann das hier heraus. (siehe unten)

Habe dafür zwar selbst keine große Verwendung, aber es tut seinen Sinn und zweck. Sind so kleine Bastelein, die man hin und wieder mal gerne tut, um sich abseits zu beschäftigen. Die Funktionen sind Dokumentiert, und eig. selbsterklärend.

HF & GL.


$this->bbcode_second_pass_code('', '[....]
/**
* Deklaration der Variablen u. Konstanten.
*/
#if ( !defined('cacheError') ) define('cacheError', false);
#if ( !defined('cacheStatus') ) define('cacheStatus', true);

$cachepath = 'cache/';
$datacache = array();


/**
* Auslesen der Cache- Datei vom Server, und wiedergeben des Inhalts.
*
* @param string $cName Name der Cache- Datei
* @param integer $cDuration Erneuerungszeit, der Cache- Datei
*
* @return Beschreibung.
*/
function datacache ( $cName, $cDuration = 60 ) {
global $cachepath, $datacache;

if ( array_key_exists($cName, $datacache) )
return $datacache[$cName];
else {
$fullpath = $cachepath.$cName;
$fullfile = @file_get_contents($fullpath);

if ( file_exists($fullpath) ) {
if ( !empty($fullfile) && filemtime($fullpath) > strtotime("-$cDuration seconds") ) {
$datacache[$cName] = @unserialize($fullfile);
return $datacache[$cName];
}
else return false;
}
}

// Rückgabe, des Status
return false;
}

/**
* Ändern/Hinzufügen von (alten/neuen) Cache- Datei(en) auf dem Server.
*
* @param string $cName Name der Cache- Datei
* @param string $cValue Der zu speichernde Inhalt
* @param string $cStatus Meldung zurückgeben (default: Nein)
*
* @return Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.
*/
function updatecache ( $cName, $cValue, $cStatus = false ) {
global $cachepath, $datacache;

$handle = fopen($cachepath.$cName, "w");
if ( ($handle) ) {
if ( fwrite($handle, serialize($cValue)) ) {
$datacache[$cName] = $cValue;
return true;
}
else
// Fehlermeldung, falls Datei Inhalt nicht geändert/hinzugefügt werden konnte.
$error = 'Der Cache- Inhalt konnte nicht in die Datei geschrieben werden!';
}
else {
// Meldung zum Entfernen der Cache- Datei zurückgeben
if ( ($cStatus === true) )
$ret = 'Die Datei konnte zum Schreiben nicht geöffnet werden!';
}

// Datei Bearbeitung (ab)schließen
fclose($handle);

// Rückgabe, der Meldung
return ( isset($error) ? $error : $ret );
}

/**
* Entfernen/Löschen von (alten) Cache- Datei(en) auf dem Server.
*
* @param string $cName Name der Cache- Datei
* @param string $cStatus Meldung zurückgeben (default: Nein)
*
* @return Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.
*/
function invalidcache ( $cName, $cStatus = false ) {
global $cachepath, $datacache;

if ( !empty($cName) && file_exists($cachepath.$cName) ) {
$ret = @unlink($cachepath.$cName);
unset($datacache[$cName]);

// Meldung zum Entfernen der Cache- Datei zurückgeben
if ( ($cStatus === true) )
$ret = ( $ret ? 'Die Datei wurde Erfolgreich gelöscht!' : 'Die Datei konnte nicht gelöscht werden!' );
}
else $ret = 'Der Dateiname ist Fehlerhaft bzw. die Datei wurde nicht gefunden!';

// Rückgabe, der Meldung
return $ret;
}
[....]')


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 14 Dez, 2007 16:36 
Offline
Profi
Profi
Benutzeravatar

Registriert: So 01 Apr, 2007 09:31
Beiträge: 155
o.o Oha
So hätt ich das nie hinbekommen... Danke!

*am einbau versuch*

_________________
I <3 Eliwood
_______________
$a=b;
$b=a;
$$a=a;
_______________
Faust: Was ist mit diesem Rätselwort gemeint?
- Faust I, Z. 1337


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 14 Dez, 2007 17:21 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Muss die Tage wohl nochmal drüber sehen, und kleine Verbesserungen meinerseits machen. Soweit funktioniert es einwandfrei, bzw., sollte es... Und ansonsten nur kleine schönheitsfehler & co.

Der Einbau sollte Simpel sein... Die Funktionen in die jeweilige Datei packen, Datei einbinden und dann die Funktionen handhaben zum Cachen. Wobei man beachen muss, das der Angegebene Pfad existieren muss. (standard muss also der Ordner "cache" existieren)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 25 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum