Situatie: Bij een page request dien ik meerdere tekstbestanden in te lezen. In ieder tekstbestand staan diverse blokken code (A-blokken) die op elkaar lijken, maar toch verschillen. Die verschillen dienen eruit te worden gefilterd. Het is van belang dat de code enorm geoptimaliseerd wordt, want in de toekomst gaan zeer veel bestanden tegelijk worden ingelezen. Iedere parse-winst is dus van belang.
Mijn oplossing: Momenteel lees ik de bestanden in met fopen i.c.m. feof en fgets. Ieder A-blok wordt als object in een array gezet. Het A-blok object bevat tevens de originele tekstlijnen (als array) als property. Als alle A-blok objecten aangemaakt zijn gaat de parent class alle informatie filteren. Dit wordt gedaan door per A-blok door haar tekstlijnen te itereren en er een aantal methods op los te laten (een aantal methods werkt met substr en subpos, een aantal noodgedwongen met preg_match (al dan niet voorafgegaan aan een pre-selectie met een stringfunctie, om te voorkomen dat onnodig op iedere lijn een reguliere expressie wordt losgelaten).
De vraag: Ziet iemand mogelijkheden om dit efficiënter aan te pakken? Wellicht zit ik volledig op het verkeerde spoor, alhoewel de preformance zo slecht nog niet is op het moment
Mijn oplossing: Momenteel lees ik de bestanden in met fopen i.c.m. feof en fgets. Ieder A-blok wordt als object in een array gezet. Het A-blok object bevat tevens de originele tekstlijnen (als array) als property. Als alle A-blok objecten aangemaakt zijn gaat de parent class alle informatie filteren. Dit wordt gedaan door per A-blok door haar tekstlijnen te itereren en er een aantal methods op los te laten (een aantal methods werkt met substr en subpos, een aantal noodgedwongen met preg_match (al dan niet voorafgegaan aan een pre-selectie met een stringfunctie, om te voorkomen dat onnodig op iedere lijn een reguliere expressie wordt losgelaten).
De vraag: Ziet iemand mogelijkheden om dit efficiënter aan te pakken? Wellicht zit ik volledig op het verkeerde spoor, alhoewel de preformance zo slecht nog niet is op het moment