performance
performance
Hallo,
zurzeit erweitere ich den Shop Core um eine PHP 5 / PHP 6 taugliche struktur. Damit es auf meinen Rechner lustig ist
läuft zurzeit xdebug im Hintergrund mit.
Durch zwei Zeilen Code Änderungen an Smarty ist mein Shop um das 10 fache schneller geworden.
Gleichzeitig habe ich auch etwas an den Plugins geändert.
sollte mein Shop heute abend noch laufen suche ich weitere Tester dieser Shop-Optimierung.
cu
ralf
zurzeit erweitere ich den Shop Core um eine PHP 5 / PHP 6 taugliche struktur. Damit es auf meinen Rechner lustig ist
läuft zurzeit xdebug im Hintergrund mit.
Durch zwei Zeilen Code Änderungen an Smarty ist mein Shop um das 10 fache schneller geworden.
Gleichzeitig habe ich auch etwas an den Plugins geändert.
sollte mein Shop heute abend noch laufen suche ich weitere Tester dieser Shop-Optimierung.
cu
ralf
Zuletzt geändert von r23 am 21.04.2009, 16:25, insgesamt 1-mal geändert.
Hallo,
im Newslleter vom 20.04. hatte ich zur Diskussion über die Performance eingeladen.
Für die, die den Newslletter nicht erhalten haben, hier die Einführung in das Thema.
[quote]
MyOOS Performance
Durch Änderungen von gerade mal zwei Zeilen an der Smarty Klasse
konnten wir den Shop unter PHP 5.2.9. erheblich verbesssern.
Wer Performance Bremsen finden und lösen oder einfach nur darüber
diskutieren möchte, findet in unserem neuen Board das Thema hier
performance
Zurzeit haben z.b. dynamische PHP-Projekte das Problem,
das Suchmaschinen die Session-ID mit in den Index aufnehmen.
Eine Lösung, die wir - nehmen weiteren - im System verwenden ist,
dass wir bei dem Besuch von einem Suchmaschinen-Bot erst gar
keine Session starten. Dies ist relativ sinnvoll und funktioniert auch.
Allerdings wird vor dem Start der Session geprüft, ob der
Besucher ein Suchmaschinen-Bot sein könnte oder nicht.
Und dies bei jedem Besucher.
Da, wir wissen, dass Bots von Suchmaschinen keine Cookies annehmen,
wäre es doch sicherlich sinnvoll, wenn wir zuerst prüfen, ob der
Besucher Cookies annnimmt. Sollte der Cleint, wie die Mehrheit der
Internetbenutzer, Cookies annehmen, könnten wir die Session ohne
Suchmachinenprüfung starten.
Wie prüft man nun, ob der Cleint Cookies annimmt oder nicht?
Derartige Fragen und Antworten möchten wir gerne in unserem
neu gestaltetem Board fördern.
Eine weitere Performance Steigerung finden MyOOS Anwender
in der Verwendung von memcache.
Für die Verwendung von memcache im MyOOS Projekt muss man nur
die Port und IP Adresse von dem Memcach Server in
~/shop/includes/functions/function_db.php
eintragen.
Wie man memcache auf einem Unix System installiert haben wir
hier beschrieben
http://www.oos-shop.de/memcache-mit-myoos/
menchache liegt auch dem XAMPP Projekt bei.
Für Anwender, die MyOOS in einer aktuellen PHP 5.2.x
Umgebung verwenden, Empfehlen wir den Verzicht auf PHP 4
Support bei dem Datenbankabstraktions-Layer adodb.
adodb für PHP 5 steht in einer neuen Version zum Download
zur Verfügung.
weitere Informationen hier
adodb 5.08 veröffentlicht
[quote]
im Newslleter vom 20.04. hatte ich zur Diskussion über die Performance eingeladen.
Für die, die den Newslletter nicht erhalten haben, hier die Einführung in das Thema.
[quote]
MyOOS Performance
Durch Änderungen von gerade mal zwei Zeilen an der Smarty Klasse
konnten wir den Shop unter PHP 5.2.9. erheblich verbesssern.
Wer Performance Bremsen finden und lösen oder einfach nur darüber
diskutieren möchte, findet in unserem neuen Board das Thema hier
performance
Zurzeit haben z.b. dynamische PHP-Projekte das Problem,
das Suchmaschinen die Session-ID mit in den Index aufnehmen.
Eine Lösung, die wir - nehmen weiteren - im System verwenden ist,
dass wir bei dem Besuch von einem Suchmaschinen-Bot erst gar
keine Session starten. Dies ist relativ sinnvoll und funktioniert auch.
Allerdings wird vor dem Start der Session geprüft, ob der
Besucher ein Suchmaschinen-Bot sein könnte oder nicht.
Und dies bei jedem Besucher.
Da, wir wissen, dass Bots von Suchmaschinen keine Cookies annehmen,
wäre es doch sicherlich sinnvoll, wenn wir zuerst prüfen, ob der
Besucher Cookies annnimmt. Sollte der Cleint, wie die Mehrheit der
Internetbenutzer, Cookies annehmen, könnten wir die Session ohne
Suchmachinenprüfung starten.
Wie prüft man nun, ob der Cleint Cookies annimmt oder nicht?
Derartige Fragen und Antworten möchten wir gerne in unserem
neu gestaltetem Board fördern.
Eine weitere Performance Steigerung finden MyOOS Anwender
in der Verwendung von memcache.
Für die Verwendung von memcache im MyOOS Projekt muss man nur
die Port und IP Adresse von dem Memcach Server in
~/shop/includes/functions/function_db.php
eintragen.
Wie man memcache auf einem Unix System installiert haben wir
hier beschrieben
http://www.oos-shop.de/memcache-mit-myoos/
menchache liegt auch dem XAMPP Projekt bei.
Für Anwender, die MyOOS in einer aktuellen PHP 5.2.x
Umgebung verwenden, Empfehlen wir den Verzicht auf PHP 4
Support bei dem Datenbankabstraktions-Layer adodb.
adodb für PHP 5 steht in einer neuen Version zum Download
zur Verfügung.
weitere Informationen hier
adodb 5.08 veröffentlicht
[quote]
Code: Alles auswählen
if(strstr($GLOBALS['HTTP_SERVER_VARS]['HTTP_USER_AGENT], 'Mac')) {
$dpi_default = 72;
} else {
$dpi_default = 96;
}
.
.
.
if(isset($params['dpi])) {
$_resize = $dpi_default/$params['dpi];
$width = round($width * $_resize);
$height = round($height * $_resize);
}
Darf ich fragen was du genau dort geändert hast? Ich meine Smarty Class!
Ich habe das hier schon probiert:
Ich habe das hier schon probiert:
Code: Alles auswählen
$use_sub_dirs=true
Hallo Adam,
Smarty verwendet require_once
http://www.techyouruniverse.com/softwar ... quire_once
Damit steigst du bei neuen PHP Systemem voll auf die Bremse.
In einer PN habe ich dir die Änderungen zum Testen zur Verfügung estellt.
cu
ralf
Smarty verwendet require_once
http://www.techyouruniverse.com/softwar ... quire_once
Damit steigst du bei neuen PHP Systemem voll auf die Bremse.
In einer PN habe ich dir die Änderungen zum Testen zur Verfügung estellt.
cu
ralf
THX
Diese Autoload mit PHP Tokenizer finde ich auch interessant:
http://ajbrown.org/blog/2008/12/02/an-a ... nizer.html
http://www.techyouruniverse.com/softwar ... mment-2615Using absolute_path is almost 2 times slower than using relative_path.
Using require_once() is slower than require().
Diese Autoload mit PHP Tokenizer finde ich auch interessant:
http://ajbrown.org/blog/2008/12/02/an-a ... nizer.html
Zuletzt geändert von Adam am 22.04.2009, 00:51, insgesamt 1-mal geändert.
Hallo,
unter dem aktuellen Artikel
Wordpress Websites Beschleunigen
http://www.perun.net/2009/04/22/wordpre ... hleunigen/
beschreibt Perun (Vladimir Simovic) eine Möglichkeit die Daten während
des Weges zwischen dem Server und dem Client (Browser) zu komprimieren (zippen).
Dies hat er bei
http://brightscape.net/compress-your-we ... d_deflate/
gefunden.
Da das MyOOS Projekt ab 2.x die Yahoo Regeln
http://www.oos-shop.de/yahoo-gibt-clien ... nce-tipps/
umsetzt
Hier der Anfang
Subdomain static1 für JavaScript eingerichet
denke ich, kann man für die Subdomain
verwenden?
Wer HTML gezippt an den Client sende möchte kann den Output Filter in
~/shop/includes/oos_display.php aktivieren.
Diler Filter löscht alle Leerzeichen am Anfang einer Zeile und reduziert so
die zu übertragene HTML Datei. (die man evtl. von dem WebServer noch zippen lässt...
Allerdings steigt man hier auf die Bremse... Der Vorteil ist "nur" der
reduzierte Datentransfer zum Kunden....
cu
ralf
unter dem aktuellen Artikel
Wordpress Websites Beschleunigen
http://www.perun.net/2009/04/22/wordpre ... hleunigen/
beschreibt Perun (Vladimir Simovic) eine Möglichkeit die Daten während
des Weges zwischen dem Server und dem Client (Browser) zu komprimieren (zippen).
Code: Alles auswählen
<FilesMatch "\\.(js|css|html|htm|php|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>
http://brightscape.net/compress-your-we ... d_deflate/
gefunden.
Da das MyOOS Projekt ab 2.x die Yahoo Regeln
http://www.oos-shop.de/yahoo-gibt-clien ... nce-tipps/
umsetzt
Hier der Anfang
Subdomain static1 für JavaScript eingerichet
denke ich, kann man für die Subdomain
Code: Alles auswählen
<FilesMatch "\\.(js|css|html|htm|php|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>
Wer HTML gezippt an den Client sende möchte kann den Output Filter in
~/shop/includes/oos_display.php aktivieren.
Diler Filter löscht alle Leerzeichen am Anfang einer Zeile und reduziert so
die zu übertragene HTML Datei. (die man evtl. von dem WebServer noch zippen lässt...
Code: Alles auswählen
$oSmarty->load_filter('output', 'trimwhitespace');
Allerdings steigt man hier auf die Bremse... Der Vorteil ist "nur" der
reduzierte Datentransfer zum Kunden....
cu
ralf
Die Funktion oos_parse_category_path
wir verwenden ab MyOOS 2.1.2
wir verwenden ab MyOOS 2.1.2
Code: Alles auswählen
array_unique(array_filter(explode('_', $sCategories), 'is_numeric'));
http://www.php-performance.de/schleifen ... oreach.php
Foreach-Konstrukt
Each-Funktion
Die Each-Funktion liefert das aktuelle Schlüssel-, Wertepaar eines Arrays zurück. Mit Hilfe einer While-Schleife lässt sich somit eine "Foreach-Schleife" nachbilden.
For-Schleife
Foreach-Konstrukt
Code: Alles auswählen
<?php
global $arr; //Zugriff auf Testarray
foreach($arr as $key => $val) {
echo $val;
}
?>
Code: Alles auswählen
<?php
global $arr; //Zugriff auf Testarray
while (list($key, $val) = each($arr)) {
echo $val;
}
?>
For-Schleife
Code: Alles auswählen
<?php
global $arr; //Zugriff auf Testarray
for($i = 0; $i < 10000; $i++) {
echo $arr[$i];
}
?>