Die Laufzeit ist deshalb so schlecht weil du immer wieder in den Funktionen einen Datei-Descriptor öffnest.

Beim Arbeiten mit größeren Dateien ist es Sinnvoller mit Temporären Inhalten zu Arbeiten b.z.w. diese in eine Temp Datei aus zu lagern.

Zeige mal einen Beispiel Inhalt der Datei und Beschreibe was du machen möchtest.