Derzeit versuche ich den Page Restrictor auf Anschlag zu optimieren. Ziel: es muss bei allen Nutzern funktionieren, also ist der kleine gemeinsame Nenner ausschlaggebend. Und das ist eben nur PHP4 und _keine Datenbank_, und vor allem keine zig Dateien oder geschwaetzige und damit langsame XML Formate.
Nun ohne Datenbank optimieren ist ganz schoen heavy. Vor allem weil sich PHP ganz anders verhaelt als man es erwartet. Wer haette gedacht dass die Funktionen in_array() und array_search() mit vergleich auf eine zahl und einem zahlenarray ca. 10mal langsamer sind als wenn diese zahlen als string mit strpos durchforstet werden. Ich sicher nicht, ist aber so! Zur Verdeutlichung:
$data = ' datum1 datum2 datum3 ... ';
if (strpos($data, ' datum999 ') !== false)
ist bei 10000 durchlaeufen und 1521 datensaetzen (zahl1 bis zahl1521) ca. 10 mal schneller als
$data = array(zahl1, zahl2, zahl3, ...);
if (in_array(zahl999, $data))
Grund koennte sein dass der PHP Interpreter meint er muesse selbst wenn er Zahlen mit Zahlen vergleich einen String-Vergleich durchfuehren.
array_search statt in_array ergibt keinen Unterschied, bei Nutzung von STRICT als true als dritten Parameter wird es nur minimal schneller.
Wenn uebrigens noch jemand eine Idee hat wie man quasi einen Pseudo-Hash als Array performant hinbekommt, bitte melden. Denn Sachen wie
$data = array(zahl1=>1, zahl2=>1, ...);
if (isset($data[999]))
sind wiederum 10mal so langsam wie der strpos auf String-Vergleich. Auch die Verwendung von array_key_exists hilft da nicht.
Willkommen in der PHP-Welt. Nichts ist so wie man es erwartet. Was nuetzt einem die beste "ich-kann-alles" Datenstruktur, wenn sie derart unperformant implementiert ist.. Merke: wenns auf Performance ankommt, verzichte auf Arrays, sie fressen nicht nur unter Umstaenden (insbes. assoziative Arrays koennen da richtig zulangen) ziemlich viel Speicher, sondern sind auch noch langsam. Alle Macht dem String, dies gilt aber nur fuer PHP (nach Zeitmessungen von Jojo koennte dies aber auch fuer VB6 gelten ). In jeder vernuenftigen Sprache duerften Zahlen-Arrays schneller sein, aber war PHP je eine vernuenftige "Sprache"?
Sonntag, 18. Mai 2008
Die etwas andere Klassikstunde
Die etwas andere Klassikstunde gibt es hier:
http://de.youtube.com/watch?v=WOQaK7NHY-4
http://de.youtube.com/watch?v=WOQaK7NHY-4
Samstag, 17. Mai 2008
Space Needle ausgekärchert
Das Wahrzeichen Seattles, die Space Needle, ist bzw. war durch Emissionen und Vogeldreck schwer verunreinigt. [Das Koepfle soll sich uebrigens 1mal die Stunde um 360 Grad drehen?].
Nun wurde sie statt der Vororte in Frankreich (siehe http://www.airport1.de/blog/archives/347-Nicolas-Sarkozy-ist-der-neue-franzoesische-Praesident.html ) "ausgekaerchert".
Wo die Winnender ueberall hinkommen
Nun wurde sie statt der Vororte in Frankreich (siehe http://www.airport1.de/blog/archives/347-Nicolas-Sarkozy-ist-der-neue-franzoesische-Praesident.html ) "ausgekaerchert".
Wo die Winnender ueberall hinkommen
Letzte Kommentare