PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for the ‘performance’ tag

PHP 5.4.0 Beta1 Performance!

with 10 comments

Ich bin zufällig auf eine Präsentation über die kommende PHP 5.4.0 Version gestossen, mit einer Liste aller entfernten Features, neuer Features, aber auch interessanten Performance- und Speicherverbrauchdaten. Informationen über Features sind ja schon etwas länger bekannt, und im Changelog findet man auch viele Informationen, aber ehrlich gesagt konnte ich es nicht glauben was da bei den Performance-Tests steht, das mußte ich selbst ausprobieren.

Hier Beispiel 1 aus der Präsentation:

/php537/php micro_bench.php
    Max memory usage 1048576 bytes.
    Running 27.608 s.

/php540/php micro_bench.php
    Max memory usage 524288 bytes.
    Running 13.254 s.

Hier Beispiel 2 aus der Präsentation:

/php537/php NewObjectClassTest.php
   Running 0.20629 s , 640616 bytes.
/php537/php StaticClassTest.php
   Running 0.35047 s, 640616 bytes.

/php540/php NewObjectClassTest.php
   Running 0.12018 s, 227808 bytes.
/php540/php StaticClassTest.php
   Running 0.10803 s, 227880 bytes.

Hier Beispiel 3 aus der Präsentation:

Weiterlesen »

Written by Michael Kliewe

September 30th, 2011 at 9:27 am

Posted in PHP

Tagged with , , ,

Fast by Default – O’Reilly Media’s Velocity Konferenz kommt nach Berlin!

with one comment

Velocity, die erfolgreiche Web Performance and Operations Konferenz produziert von O’Reilly Media, kommt zum ersten Mal nach Europa! Am 8. und 9. November trifft sich die internationale Web Developer Szene im Berliner Maritim proArte Hotel, um ihr Wissen über Skalierbarkeit, Zuverlässigkeit und Schnelligkeit von Webseiten auszutauschen.

Auf die Teilnehmer warten zwei spannende Tage mit exzellenten Keynote Rednern und intensiven Workshops. Die Gastgeber Steve Souders (Google) and John Allspaw (etsy.com) haben Experten wie Theo Schlossnagle (OmniTI) und Jeff Veen (Typekit) eingeladen, die ihre Erfolgsgeschichten präsentieren und auch die kniffligsten Fragen zu Themen wie Ajax, CSS, JavaScript und Performance auf mobilen Geräten beantworten werden.

Was sind die neuesten Tools und Trends im Web Development? Erfahrungsaustausch und praktische Anwendungen stehen im Vordergrund bei der Velocity Europe. Ivo Teel (SPIL GAMES), Mike Shaver (Mozilla Firefox), Jon Jenkins (Amazon.com), Schlomo Schapiro (ImmobilienScout24) und weitere maßgebliche Vordenker der Branche stellen ihre Ideen vor und diskutieren die neuesten Entwicklungen.

Jeff Veen, CEO von Typekit, betont die entscheidenden Faktoren für erfolgreiche Webseiten: „I’ve been working on the design and user experience of web sites for 15 years, and I keep coming back to this: performance and reliability is the bedrock for building products people love. The diversity of speakers at Velocity Europe is a testament to how important speed at scale has become.“

Informationen zu allen bestätigten Sprechern unter:
http://velocityconf.com/velocityeu/public/schedule/speakers

Weitere Highlights des englischsprachigen Programms sind:
Weiterlesen »

Written by Michael Kliewe

September 23rd, 2011 at 11:04 am

PHP in_array() die Performance-Bremse

with 24 comments

Dies ist ein Gastartikel von Dominik Siebel.

Dominik ist 25 Jahre alt und arbeitet als Webentwickler und Consultant bei TWT Business Solutions GmbH in Düsseldorf. Sein Hauptaufgabenbereich ist die Entwicklung von Inter- und Intranetapplikation im Zusammenspiel mit Google Enterprise Produkten (GSA) auf Basis gängiger Technologien: MySQL, PHP, Java, jQuery, etc.

Einleitung

Ich bin kürzlich erst wieder über dieses Problem gestolpert und dachte mir ich bringe es für die Nachwelt zu Papier 😉
PHPs in_array() Funktion ist ziemlich praktisch um auf die Schnelle zu überprüfen ob ein Eintrag bereits in einem Array enthalten ist und so z.B. doppelte Einträge zu vermeiden. So handlich diese Funktion auch ist, so offenbart sie jedoch erhebliche Schwächen, wenn wir erstmal ein paar mehr als die üblichen 500 – 1000 Datensätzen verarbeiten wollen.

Ausgangssituation

Weiterlesen »

Written by Dominik Siebel

Januar 26th, 2011 at 9:26 am

Test von Googles neuem Apache Modul mod_pagespeed

with 22 comments

Google kündigt an, die Welt applaudiert: Das neue Apache-Modul mod_pagespeed soll automatisch Webseiten schneller machen, ohne Aufwand und für jede Seite, eine bis zu 50% schnellere Webseite wird versprochen. Google selbst hat natürlich auch etwas davon: Wenn jede Webseite schneller abrufbar ist, können die Suchmaschinen-Spider schneller und mehr crawlen…

Doch wenn man es selbst ausprobiert sind die Ergebnisse ernüchternd. Ich habe heute Abend das Modul installiert und aktiviert (in unter 3 Minuten), und ein paar Messergebnisse mit Firebug, PageSpeed und YSlow zusammengetragen.

Ergebnis: kein nennenswerter Geschwindigkeitsschub, teilweise sogar langsamer als vorher. Einige haben bei ersten Benchmarks das selbe Ergebnis wie ich erhalten, andere jedoch sprechen von 46% Verbesserung. Es scheint sehr davon abzuhängen wie die Seite aufgebaut ist und ob bereits Maßnahmen zur Verbesserung der Performance getroffen wurden.
Außerdem habe ich auf meiner Seite nach der Aktivierung Probleme mit dem HTML-Validator gefunden die vorher nicht da waren, durch die „Verbesserungen“ habe ich plötzlich ungültigen HTML-Code!

Hat jemand von Euch bereits Tests gemacht, was ist dabei herausgekommen?

==========================
Die Installation unter Ubuntu (32bit) ist denkbar einfach:
Weiterlesen »

Written by Michael Kliewe

November 5th, 2010 at 12:32 am

Algorithmus-Wettbewerb Teil 2: Spielplan errechnen

with 40 comments

Tüftler aufgepasst, ich habe eine neue Aufgabe, die es möglichst effektiv zu lösen gilt. In der Vergangenheit hatte ich bereits nach Wegberechnungen auf einem Spielfeld für ein Browsergame gefragt, heute soll es um einen Spielplan gehen den es zu errechnen gilt.

Wir haben folgende Ausgangslage: X Spieler möchten ein Turnier veranstalten, wobei jeweils einer gegen einen spielt (Duelle, deshalb sollte X gerade sein). Dabei soll jedoch niemand mehrfach gegen den selben Spieler antreten und es soll niemand ein Spielbrett zweimal benutzen dürfen. Es gibt X/2 Spielbretter, also auch für jeden Spieler X/2 Duelle.

Die Ergebnistabelle ähnelt etwas einer Sudoku-Lösung: Jede Zahl darf nur einmal pro Zeile und einmal pro Spalte vorkommen.

Beispiel: 6 Spieler, 3 Spielfelder

Spielbrett 1Spielbrett 2Spielbrett 3
Runde 11-23-45-6
Runde 23-51-62-4
Runde 34-62-51-3

Für 4 Spieler und 2 Spielfelder gibt es keine Lösung.

Nun sollen gültige Lösungen für beliebig viele Spieler gefunden werden, in meinem Realbeispiel benötigten wir einen Turnierplan für 10 und 12 Spieler. Ich habe vor ca. einem Jahr ein Script geschrieben welches dafür ca. 20 Stunden gebraucht hat, gestern habe ich einen anderen Ansatz gewählt und habe in unter einer Sekunde eine Lösung.

Ihr sollt nun ein Script schreiben das bei einer Eingabe der Spieleranzahl von 20 eine gültige Lösung ausspuckt. Die Lösung dann bitte hier, im eigenen Blog, bei Pastie.org oder sonstwo veröffentlichen (Script + Ergebnis). Mein Script hat 58 Zeilen, ist zufallsbasiert (also keine Rekursion, kein geordnetes Brute-Forcing) und ich werde es in 2 Wochen (6.7.2010) veröffentlichen. Es benötigt für 20 Spieler im Durchschnitt ca. 60 Sekunden (da zufallsbasiert dauert es mal 4 Sekunden, mal 250 Sekunden).

Bin gespannt auf eure unterschiedlichen Lösungen, vielleicht ist ja eine sehr gute und schnelle Lösung dabei! Aber auch erste Ideen und langsame Scripte sind eine gute Basis, sie vorzustellen und zu verbessern.

Das ist auch eine gute Möglichkeit, sich mit Freunden, Bekannten und Arbeitskollegen zu messen 😉

Written by Michael Kliewe

Juni 22nd, 2010 at 12:18 pm

Posted in PHP

Tagged with , ,