Thread Perl-Modul EavFile soll EavFile::XS werden (32 answers)
Opened by rosti at 2013-06-12 19:42

rosti
 2013-06-14 23:32
#168300 #168300
User since
2011-03-19
3472 Artikel
BenutzerIn
[Homepage]
user image
Quote
ich würde den benchmark zu Storable, Sereal etc. gerne sehen, obwohl du ihn nicht für sinnvoll hältst.


In c ist IO um ein Vielfaches schneller als in Perl. Das ergibt ein Benchmark. Das wissen wir schon. Für mich als Entwickler von Serialize-Algorithmen ist das ein Motiv, den auf meiner Seite vorgestellten Algorithmus nach c umzusetzen. In meinem Artikel über die Implementierung des Entity-Attribute-Value-Model mit diesem Algorithmus schreibe ich auch, warum es in der Datei redundante Daten gibt: Beim Einlesen der Bytes baut sich der Hash of Hashes sozusagen wie von selbst wieder zusammen.

Zum Vergleich ein anderer Algorithmus, den ich vor ein paar Jahren entwickelt habe: Hierbei wird for each Entity erst die Anzahl der Attribute ermittelt und dann als Key-Value-Pair geschrieben. Das erfordert natürlich mehr CPU im Serialize- bzw. Deserialize-Prozess, einen weiteren Schleifenkörper und mehr IO (diesen anderen Algorithmus könnt Ihr in der Foo 3/2011 nachlesen, danke René, http://rolfrost.de/proglog.html?d=20110404 ).

Anwendungsfälle für EAV kennt jeder Programmierer. Pivot-Tabellen passen übrigens auch auf dieses Model, der Drehpunkt ist das Attribut. Und selbstverständlich passen EAV-Patterns auch auf Objekte, sowie Konfigurationsdateien im INI-Format.

--Rosti

PS: http://shop.handwerkzeugs.de/shop.de.html
Sieht einfach aus, der Shop. Was dahinter steckt ist EAV über DBI (MySQL). Offer ist EAV, Konfiguration ist EAV.
Last edited: 2013-06-14 23:44:16 +0200 (CEST)

View full thread Perl-Modul EavFile soll EavFile::XS werden