Portal > Foren > PHP > PHP-Programmierung > Vorteil von Serialisierung von Text ?
Antwort
 
Themen-Optionen
Alt 31.10.2006, 19:59 Nach oben    #1
Benutzer
 
Registriert seit: 24.10.2006
Beiträge: 90
Standard Vorteil von Serialisierung von Text ?

Hallo!

Ich lese es immer wieder, verstehe es aber nicht bzw. sehe keinen Vorteil darin. Ich weiß zwar was es heißt ein Objekt in ein persistentes Objekt umzuwandeln (zu serialisieren) etc. aber ich verstehe nicht was es bringen soll reinen Text zu serialisieren. Ich würde sagen nix. Schließlich ist ein Text ja schon ein Datenstrom.

Deshalb versteh ich z.B. auch nicht den Vorteil wenn ein simpler File Cache (der die Ausgabe buffert und anstatt sie an den Client zu senden einfach in ein File schreibt) die Option anbietet diesen Buffer zu serialisieren. IMHO wird da nur ordentlich mehr Rechenleistung verbraucht.

Deshalb, klärt mich auf. Was bringt so etwas?

MfG Byrel
Byrel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.11.2006, 21:02 Nach oben    #2
Johannes Schlichenmaier
 
Benutzerbild von Jojo
 
Registriert seit: 26.08.2005
Ort: Mannheim
Beiträge: 395
Standard

hmm.....
Vielleicht wenn du vorhast, zu Debugging-Zwecken ein Objekt, Array, o.ä. auszugeben?
__________________
In the beginning was the word
and the word was content-type: plain/text

heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int
Jojo ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.11.2006, 21:08 Nach oben    #3
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 684
Standard

In gewisser Weise könnte ich mir vorstellen, dass serialisierung von bestimmten Bereichen der Webseite deutlich performanter sind, als jedes mal beim Aufruf einer Seite eine neue Datenbank-Abfrage zu starten. Als Beispiel: Wenn man ein Browsergame mit einem Tick-System nimmt, in dem alle 10 Minuten die Rohstoffe aktualisiert werden, speichere ich nach der ersten Abfrage das Ergebnis der vorhandenen Rohstoffe und den Zeitpunkt der nächsten Aktualisierung und brauche dann unter Umständen für 10 Minuten keine neue Datenbank-Abfrage dafür zu starten. Das war jetzt ein sehr plumpes Beispiel, aber abwege ist es keineswegs, zumindest die grobe Überlegung.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.11.2006, 21:11 Nach oben    #4
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.177
Standard

ich hab gestern schon überlegt, wo nutze ich serialisierung ? naja eigentlich fällt mir spontan nur 1 punkt ein, wenn ich irgendwas schnell, einfach und ohne weitere aufschlüsselung in der Datenbank speichern will, meistens sind das arrays, selten objekte und meist daten die irgendwo in der db vergammeln, die einfach gespeichert werden, dass sie halt da sind, falls ich sie mal brauche.

ein Vorteil ist halt, dass man theorhetisch alle daten jeglicher form (array, objekt ...) egal wie sie aufgebaut sind von der struktur, so ganz einfach in eine datei oder in eine datenbankspalte speichern kann.

ich weis ja nicht was schneller ist:

serialisieren in datei schreiben, auslesen, entserialisieren
im vergleich zu: implode mit nem parameter, in datei schreiben und dann auslesen und exploden.

Der Vorteil hier beim serialisieren ist dass ich mir auch z.b. keine Gedanken um ein Trennzeichen machen muss fürs implode/explode das dann dummerweise in nem string vorkommt und man sich noch gedanken ums escapen oder ähnliches machen muss.


mfg
robo47
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.11.2006, 21:16 Nach oben    #5
Benutzer
 
Registriert seit: 24.10.2006
Beiträge: 90
Standard

Hallo!

Danke für eure Antworten.

Meine Frage bezog sich aber eher auf die Serialisierung von reinem Text und nicht auf Datenstrukturen.

@JoJo
Zitat:
Vielleicht wenn du vorhast, zu Debugging-Zwecken ein Objekt, Array, o.ä. auszugeben?
Naja, wenn ich ein Array ausgebe z.B. mit print_r ist das ja auch nur reiner Text oder?

MfG Byrel
Byrel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.11.2006, 21:19 Nach oben    #6
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 684
Standard

Hmm... Ich denke für Strings macht es wirklich keinen Sinn, es ist wohl eher für Objekte und Arrays gedacht, die widerum Strings enthalten können und in aller Regel auch tun. Das ist die einzige Erklärung für mich, weshalb es überhaupt möglich ist, Strings zu serialisieren.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.11.2006, 10:41 Nach oben    #7
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

Serialisierung bedeutet ja etwas lapidar ausgrdrückt, eine Datenstruktur in "Textform" zu bringen. Einen Text zu serialisieren ist daher reichlich unnötig. Etw, wie ein neues Blatt Papier zu bügeln oder so.

Wo hast du denn diese Info aufgeschnappt?

Basti

@"robo47":
Du nutzt Serialisierung z.B. immer, wenn du Daten in eine Session packst. ...aber wohl eher implizit.
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.11.2006, 12:23 Nach oben    #8
Benutzer
 
Registriert seit: 24.10.2006
Beiträge: 90
Standard

k. A.

Bei einigen Frameworks. Bei den php.internals in Blogs.
Da hab ich oft Caches gesehen und auch in der Doku die so in etwa arbeiten:

PHP-Code:
if (! ($data $cache->get ())) {
   
ob_start ();

      echo 
"lalala";

   
$cache->save (ob_get_contents ());
   
ob_end_flush ();

Also reiner Text. Vielleicht wollen Sie halt einfach auch die Möglichkeit anbieten Objekte, Variablen etc. zu cache. Obwohl wenn jemand sowas machen will wohl jeder nen Opcode Cache (z.B. APC) nehmen würde.



Wenn ich sowas wieder irgendwo seh, poste ich es hier.

MfG Byrel

Geändert von Byrel (02.11.2006 um 12:28 Uhr).
Byrel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.11.2006, 12:30 Nach oben    #9
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.471
Standard

Hab da auch schon mal drüber nachgedacht und bin zu genau diesem Ergebnis hier gekommen:
Zitat:
Zitat von MrNiceGuy Beitrag anzeigen
Das ist die einzige Erklärung für mich, weshalb es überhaupt möglich ist, Strings zu serialisieren.
Sehe ich genauso.

Diese Codezeile hier halte ich allerdings für äußerst zweifelhaft.
PHP-Code:
$cache->save (ob_get_contents ()); 
sofern es sich bei dem save() um eine Methode haltet, die die Daten in eine Datei schreibt.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.11.2006, 12:42 Nach oben    #10
Benutzer
 
Registriert seit: 24.10.2006
Beiträge: 90
Standard

Ja war ja nur ein Beispiel. Normal wird Output Buffering im Cache aktiviert.

Oder verstehe ich was falsch? (Der Smilie irritiert mich :>)

MfG Byrel
Byrel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.11.2006, 12:46 Nach oben    #11
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.471
Standard

Ne, verstehst nicht falsch, sondern ich hatte irgendwie file_get_contents() anstatt ob_get_contents() gelesen. .. *hust*
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.11.2006, 14:05 Nach oben    #12
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

Zitat:
Zitat von Byrel Beitrag anzeigen
PHP-Code:
if (! ($data $cache->get ())) {
   
ob_start ();

      echo 
"lalala";

   
$cache->save (ob_get_contents ());
   
ob_end_flush ();

Das war wohl nur als Beispiel gedacht. Anstatt dem echo "lalala"; würde hier eben ein GET-Request verarbeitet werden. Und im OB steht dann natürlich eine Zeichenkette. Von Serialisierung ist in dem Schnipsel jauch nichts zu sehen.

Möglich wäre es nun diesen String aus dem OB zusammen z.B. mit dem Verfallsdatum in ein Array zu packen und dieses cache::save() zu übergeben. In dem Fall könnte die Methode zwar erkennen, ob es sich um ein Array handelt und ggf. serialisieren, jedoch wäre das beim Auslesen nicht mehr so ohne weiteres Möglich (es sei denn, man "verbietet" die Option, Strings zu cachen, die formal aussehen, wie serialisierte Werte). Daher wird man die Option ob serialisieren oder nicht global (...) einstellen und Standard-Libs werden hier eben eine entsprechende Funktion anbieten, um bei reinen Text-Caches die Serialisiertung pauschal ausschalten zu können.

Ich vermute mal, das dass das ganze Geheimnis ist. Also: In der Regel serialisiert der Cache, aber wenn er in eine Anwendung eingebaut wird, in der eh nur Strings gecached werden, dann kann man die Option ausschalten, um Ressourcen zu sparen.

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JEditorPane -> Text formatieren Binary Allgemeine Java-Programmierung 4 15.12.2006 18:18
Probleme mit RSS heohni PHP-Programmierung 21 13.10.2006 12:10
Text hinter einem Bild mittig positionieren florian HTML, XML und CSS 3 13.09.2006 21:28
Bild im Text mit css? code5 HTML, XML und CSS 11 20.12.2005 13:15
dateisystem, Text an erste Position anhängen Niedi PHP-Programmierung 15 28.10.2005 20:59


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:06 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44