Voor een web applicatie (j2ee) maak ik gebruik van XML voor de beschrijving van een state machine. Dit kan een andere zijn per pagina, maar gemiddeld blijven de bezoekers een flink tijdje op een enkele pagina.
Nu moet het document natuurlijk geparsed worden naar een interne structuur. Dit gebeurd eenmalig bij het binnenkomen in de state machine. De overhead kan oplopen tot zo'n 300ms op een 2ghz machine, maar is gemiddeld zo'n 120ms voor eerste aanvragen van een document (gemeten door simpele system time calls voor en na het parsen te doen).
Het lijkt trouwens dat veel tijd in het laden van disk zit, want na enige keren het document overnieuw te laten parsen gaan de tijden naar 20ms of zelfs 0ms.
Nu zat ik laatst een stuk te lezen over code generatie en ik dacht dat dat mischien wel handig was voor mijn XML structuur. In plaats van on-the-fly te parsen en mijn interne structuur op te bouwen kan ik ook eenmalig van te voren een class genereren vanuit mijn XML file, die ik dan via class for name inlaadt in mijn applicatie.
Nu vraag ik mij af of dit een goede strategie is. Het klinkt redelijk recht toe recht aan, maar ik hoor er eigenlijk niet zo vaak iemand over, dat je een XML file al van te voren naar een java bestand omzet en dat dan compileer.
Wat denken jullie? Zou dit een goede zet zijn of juist niet?
Nu moet het document natuurlijk geparsed worden naar een interne structuur. Dit gebeurd eenmalig bij het binnenkomen in de state machine. De overhead kan oplopen tot zo'n 300ms op een 2ghz machine, maar is gemiddeld zo'n 120ms voor eerste aanvragen van een document (gemeten door simpele system time calls voor en na het parsen te doen).
Het lijkt trouwens dat veel tijd in het laden van disk zit, want na enige keren het document overnieuw te laten parsen gaan de tijden naar 20ms of zelfs 0ms.
Nu zat ik laatst een stuk te lezen over code generatie en ik dacht dat dat mischien wel handig was voor mijn XML structuur. In plaats van on-the-fly te parsen en mijn interne structuur op te bouwen kan ik ook eenmalig van te voren een class genereren vanuit mijn XML file, die ik dan via class for name inlaadt in mijn applicatie.
Nu vraag ik mij af of dit een goede strategie is. Het klinkt redelijk recht toe recht aan, maar ik hoor er eigenlijk niet zo vaak iemand over, dat je een XML file al van te voren naar een java bestand omzet en dat dan compileer.
Wat denken jullie? Zou dit een goede zet zijn of juist niet?
It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.