|
Тема |
Re: SAX vs. DOM [re: FloOoD] |
|
Автор | JAD (Нерегистриран) | |
Публикувано | 03.07.02 01:03 |
|
|
Pri nas sashto vaji definiciqta ti za "optimalno reshenie" i tai kato nqmq vreme za nova implementaciq, nie popravqme starata i otlagame za po-dobro reshenie, kogato ima vreme.
V sluchaiq trqbvashe da ostanem s DOM, okaza se che SAX obrabotva po-bavno, kogato stava duma za 1500 documenta. Ogromnoto predimsto na SAX e razhoda na pamet - 60% po-malko v nashiq sluchai, no pochti 3 pati po-bavno. Golqma chast ot coda razchita ma DOM metodi i obekti, za da go prenapishem za SAX sigurno shteshe da ni trqbva oshte tolkova vreme.
Pri nas se poluchi mnogo dobra caching sistema i go preporachvam na vseki, koito ima podobni problemi. Vednaj kachen v pametta vseki dokument go indeksirame s unique key i palnim edna Hash tablichka. Predi vsqko izvikvane, proverqvame dali veche ne sashtestvuva tozi kluch i samo ako go nqma, se sazdava nov key, a DOM parsva nov dokument.
V rezultat na vsichko tova, malko se uvelichi razhoda na pamet, no pak ostana postoqnen vav vremeto. Razbira se napravihme i mnogo drugi promeni, koito ne sa svarzani s XML, a poveche Java, no shte gi nahvarlqm nabarzo.
Osnovniq problem s pametta se okaza nepravilnoto izpolzvane na String. Zamenihme String obektite sas StringBuffer i metoda append(), sled koeto neshtata drastichno se promeniha v polojitelna posoka. Na men malko ne mi e qsna ideqta na serializiraneto i deserializiraneto, no imam chuvstvoto che tuk e imalo znachenie, nezavisimo che i dvata classa nasledqvat Serializable.
Inicializirahme i null-irahme vsichki novi ili veche ne izpozvani obekti, koeto pomaga pri izvikvaneto na gc(). Izvikvame Garbage Collectora vseki pat kogato razhoda na pamet nadvishi opredeleno nivo.
Sazdadohme i initial Caching, t.e. generirame parvonachalen cache za da ne se poluchava parvichno zabavqne, kogato za parvi pat se otvarq dadena stranica.
Obshto vzeto tova e. Drugite neshta baha neznachitelni.
Interesno mi e, kakvo tochno predstavlqva Serealiztora koito si napravil i ako mojesh da kajesh kakvo tochno pravi i kakav e smisalat ot nego. S udovolstvie bih poglednal coda ot chisto liubopitstvo, no edva li shte moga da se vazplzvam ot nego bez da znam prilojenieto mu, a to mi e dosta matno.
|
| |
|
|
|