Unterstützung " und ' als Attribut-Abgrenzung

Dieser Bereich dient dazu, neue Features zu diskutieren und für die Entwicklung zu dokumentieren. // This area is dedicated to new features including proposals and documentation.
Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von Screeze » 01.09.2012, 12:54:21

Leider keine Zeit für Tests, bin nur kurz hier, aber folgende Idee:
Wie wär's, wenn der Parser konfigurierbar wäre? Sprich, man ihm sagen könnte, welche implementierung er nehmen soll, entweder nur " oder beides? Dann wäre zumindest der Normalfall mit nur " wohl kaum langsamer...

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von dr.e. » 01.09.2012, 18:20:58

Hallo Ralf,

schön wieder von dir zu hören! :) Diese Möglichkeit habe ich aktuell schon im Test implementiert, es erfordert jedoch einen größeren Umbau und man muss die Konfiguration bei eigenen Tags wieder beachten. Das ist meiner Ansicht nach dann im Hinblick auf die ohnehin schon zu beachtenden Themen ungünstig.

Wenn Konfiguration, dann eher statisch im XmlParser. Das fände ich dann wieder sinnvoll.
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von jwlighting » 02.09.2012, 14:17:07

Ich hatte sammy8806 gebeten, den Test auf seinen Maschinen mal laufen zu lassen. Momentan hat er anscheinend viel zu tun. Aber ich bleib dran, es kann bloß vllt etwas dauern. Oder eilt es?

Wie groß sind den die negativen Auswirkungen auf die Performance im im Durchschnitt bei der neuen Implementierung mit RegEx? Kommt das evtl. auf die PHP-Version und Module an, ob die schneller oder langsamer ist?

LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von dr.e. » 02.09.2012, 21:24:52

Hallo Jan,

danke, dass du Sammy um weiteren Tests gebeten hast! Eile hat es zunächst nicht, da ich inzwischen gute Erkenntnisse aus deinen und meinen Tests gewinnen konnte.

Aktuell war die RegExp-Variante auf allen LINUX-Kisten konsequent langsamer (unabhängig von der PHP-Version und installierten Modulen). Da LINUX die Ziel-Plattform ist, ist das keine Option. Eine Option ist sicher Ralf's Vorschlag mit der Konfiguration. Wobei auch das natürlich einen kleinen Overhead besitzt.
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von jwlighting » 04.09.2012, 18:51:44

OK, dann werden da vermutlich auch keine anderen Ergebnisse mehr bei heraus kommen ;)

Die Konfiguration wäre eine Möglichkeit. Vielleicht sollten wir dann aber eher eine gut durchdachte Implementierung von String-Placeholdern einführen, da die ja keinen negativen Einfluss auf die Performance haben, wenn sie nicht gebraucht werden...

LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von dr.e. » 04.09.2012, 23:22:24

Ja. Das scheint mir momentan die bessere Option zu sein. Ich nehme das Thema mal mit auf die Roadmap.
Viele Grüße,
Christian

sammy8806
Beiträge: 13
Registriert: 22.07.2011, 20:18:58
Wohnort: Lemmitown
Kontaktdaten:

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von sammy8806 » 07.09.2012, 16:26:42

Soo, jetzt melde ich mich auch mal wieder.
Irgendwie geht bei mir hier letzte Zeit alles drunter und drüber und ich kam nie dazu die Ergebnisse hochzuladen.

Grüße
Steven
Dateianhänge
testresultate.tar.gz
Hier die Resultate
(5.64 KiB) 84-mal heruntergeladen
Grüße
Steven

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von dr.e. » 07.09.2012, 23:27:05

Hi Steven,

vielen Dank für deine Ergebnisse. Wie oben schon vermutet bestätigt sich meine Vermutung mit deinen Werten. Die strpos()-Implementierung von 1.15/1.16 ist einfach die schnellste.

Fazit: Der APF-Parser wird auch zukünftig nur eine Art der Delimiter unterstützen.
Viele Grüße,
Christian

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von dr.e. » 26.09.2012, 22:14:51

Hallo zusammen,

ich habe im Rahmen der Optimierung noch einen Punkt im XmlParser::getTagAttributes() umgesetzt. Damit schließe ich diesen Punkt der Roadmap - falls keine Einwände bestehen - und verzichte auf eine konfigurierbare Alternativ-Implementierung, da diese den Parser tendentiell durch die Konfigurierbarkeit eher langsamer macht.
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von jwlighting » 27.09.2012, 20:13:36

Geht klar.

Hast du die Alternative StringPlaceholder den auf der Roadmap?
Ich könnte mir sonst mal Gedanken über die Implementierung machen.

Beim Schreiben kommt mir gerade noch eine andere Idee:

Template:

Code: Alles auswählen

Ich bin ganz wenig Text mit einem <html:stringPlaceholder name="link"><a href="{URL}" title="{TITLE}>Platzhalter</a></html:stringPlaceholder> mitten drin!
Controller:

Code: Alles auswählen

// ...

$SPL = $this->getStringPlaceholder('link');
$SPL->setString('URL', $url);
$SPL->setString('TITLE' $title);

// ...
 
Das liesse sich zwar auch in html:placeholder einbauen, geht sogar aber weniger auf die Performance.
Eigentlich bräuchte man dafür nur die neue Taglib und eine neue Methode in base_controller, oder?!

LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von dr.e. » 28.09.2012, 00:36:41

Hi Jan,

diese Variante ist auch nicht schlecht. Lass uns das doch in <html:placeholder /> einbauen, dann muss der Parser keinen weiteren Tag erkennen und du kannst das Tag wie von dir beschrieben nutzen. Ein aehnliches Verhalten hat beispielsweise auch der <*:getstring /> Tag, dem du auch beliebige dynamische Werte mitgeben kannst.

Magst du einen Vorschlag dahingehend machen?
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von jwlighting » 28.09.2012, 15:20:32

Ich kümmere mich demnächst um die Implementierung und lege sie dann zur Diskussion vor.

Hatte gar nicht bedacht, dass das zusätzliche Tag im Parser ja auch Performance frisst...

LG :)

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von dr.e. » 29.09.2012, 21:15:12

Hallo Jan,
Ich kümmere mich demnächst um die Implementierung und lege sie dann zur Diskussion vor.
Sehr schön.
Hatte gar nicht bedacht, dass das zusätzliche Tag im Parser ja auch Performance frisst...
Vielleicht war das etwas missverständlich ausgedrückt. Konkret wollte ich sagen: die Verarbeitung jedes Tags nimmt natürlicherweise CPU-Zeit in Anspruch. Dies resultiert daraus, dass der Parser den Text durchgehen, nach bekannten Tags suchen und diese auswerten muss. Je mehr bekannte Tags vorhanden sind, desto mehr Zeit wird benötigt - unabhängig davon, welches Derivat eines Tags vorliegt.

Wenn wir es nun schaffen den <html:placeholder /> so umzuschreiben, dass er sowohl wie bisher als auch mit Tag-Inhalt arbeitet, musst du keinen weiteren Tag im Parser registrieren. Damit sparst du dir dann einen Parser-Lauf pro Dokument im DOM-Baum und sorgst dann dafür dass du im Vergleich schneller bist als mit einer eigenen Implementierung.

Ich hoffe, dadurch wird es etwas klarer. :)
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von jwlighting » 30.09.2012, 20:35:29

Hallo Christian,

so hatte ich es auch verstanden. Das neue Feature in html_taglib_placeholder einzubauen braucht halt an manchen Stellen ein wenig Zeit für Fallunterscheidungen. Dürfte aber quasi nix sein im Verhältnis zum Aufwand im Parser.

LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: Unterstützung " und ' als Attribut-Abgrenzung

Beitrag von dr.e. » 30.09.2012, 21:49:35

Klar, etwas mehr Zeit wird immer benötigt, nur meiner Erfahrung nach weniger als bei einem zusätzlichen Tag. Zugegeben, das ist schon eher eine micro optimization Diskussion. :D
Viele Grüße,
Christian

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast