XML @ PHP

Te dni se ukvarjam z iskanjem optimalne rešitve za branje, premetavanje in shranjevanje XML datotek. Na hitro sem spisal krajšo SimpleXML based skripto, ki pa je posamezen XML filet procesirala 1.47 sekunde, kar je vsekakor preveč za normalno delovanje obsežnejšega sistema.

Seznama RSS & Atom naslovov sem se zato lotil z DOM, a rezultat je bil še slabši - samo procesiranje je hitrejše, a ker celoten XML filet začasno shrani v “spomin” s tem upočasni delovanje strežnika, posledično upočasni procesiranje.

Že omenjen SimpleXML je z hitrim delovanjem in nizko uporabo strežniške moči primeren za procesiranje manjših XML filetov, medtem ko s togo strukturo upočasnjuje procesiranje večjih, kompleksnejših in dinamičnih XML filetov.

PHP 5.x vsebuje zanimiv “bralec” XMLReader, ki XML datoteke ne prebere v celoti - torej naloži in povleče ven potrebne informacije - pač pa le podatke, ki jih potrebujemo. S tem se izognemo nalaganju celotnih datotek na strežnik ter težkemu procesiranju.

Kot sem že omenil, se te dni igram z omenjenimi riderji in ustvarjam en IberHud class, katerega prednosti bosta hitrost in nizka poraba sistemskega spomina in moči, uporaben pa bo za agregat ali kaj podobnega.

Prav tako imam namen vzpostaviti testno mrežo sistemov (strežnikov) za branje XML filetov ter shranjevanje v centralno bazo, s čimer bi lahko znižal RefrešTime na minimum.

Takle mamo, če se mora človek učit za prihajajoče izpite :)


Komentiraj