Načtení, rozparsování toho největšího 1.65 GB xml pfo souboru a uložení do csv mi trvá celkem asi 45 sekund v php (kód je podobný jako ten výše uvedený) a zpracovává to jedno vlákno na AMD 5600G. Zpracováno je skoro 1.9 miliónu řádků.
520 MB xml fo soubor mi trvá asi 13 sekund, v něm je přes 600 tisíc řádků.
Nijak neoptimalizuju, dělám tím nejjednodušším způsobem.
Ještě poznámka, načtení toho csv fo v excelu je celkem fofr, zhruba do půl minuty (včetně 68 errorů, kdy sloupce cp a zip se vytvoří jako číselné, ale v některých případech tam není číslo), excel si daleko líp poradí s csv než s xml, s xml má asi problém.
pfo csv jsem v excelu ani nezkoušel, 1.9 milion řádků excel nepobere
Možná to zkusím nahodit i do mysql do tabulky v RAM nebo do sqlite