performance

In diesem Board könnt Ihr alle "allgemeinen" Fragen zum Thema MyOOS stellen.
Antworten
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

performance

Beitrag von r23 »

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
Zuletzt geändert von r23 am 21.04.2009, 16:25, insgesamt 1-mal geändert.
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

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]
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

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);
    }
Ich denke, wir können darauf verzichten.... Oder rechnet jemand die Schaltflächen für Max Anwender neu?
Adam
Beiträge: 17
Registriert: 20.09.2008, 15:08
Wohnort: Rheda-Wiedenbrück
Kontaktdaten:

Beitrag von Adam »

Darf ich fragen was du genau dort geändert hast? Ich meine Smarty Class!

Ich habe das hier schon probiert:

Code: Alles auswählen

 $use_sub_dirs=true
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

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
Adam
Beiträge: 17
Registriert: 20.09.2008, 15:08
Wohnort: Rheda-Wiedenbrück
Kontaktdaten:

Beitrag von Adam »

THX
Using absolute_path is almost 2 times slower than using relative_path.
Using require_once() is slower than require().
http://www.techyouruniverse.com/softwar ... mment-2615

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.
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

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).

Code: Alles auswählen

<FilesMatch "\\.(js|css|html|htm|php|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>
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

Code: Alles auswählen

<FilesMatch "\\.(js|css|html|htm|php|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>
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...

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
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

~/shop/.htaccess

Code: Alles auswählen

  php_flag magic_quotes_gpc off
PHP Security
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Die Funktion oos_parse_category_path

wir verwenden ab MyOOS 2.1.2

Code: Alles auswählen

array_unique(array_filter(explode('_', $sCategories), 'is_numeric'));
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

http://www.php-performance.de/schleifen ... oreach.php

Foreach-Konstrukt

Code: Alles auswählen

<?php
global $arr; //Zugriff auf Testarray
foreach($arr as $key => $val) {
    echo $val;
}
?> 
Each-Funktion

Code: Alles auswählen

<?php
global $arr; //Zugriff auf Testarray
while (list($key, $val) = each($arr)) {
    echo $val;
}
?>
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

Code: Alles auswählen

<?php
global $arr; //Zugriff auf Testarray
for($i = 0; $i < 10000; $i++) {
    echo $arr[$i];
}
?> 
Antworten