Ich schreibe ein Programm, in dem Leistung ziemlich wichtig ist, aber nicht kritisch. Momentan lese ich Zeile für Zeile einen Text von einer FILE*
und benutze fgets
, um jede Zeile zu erhalten. Nach der Verwendung einiger Leistungstools habe ich festgestellt, dass 20% bis 30% der Zeit, in der meine Anwendung ausgeführt wird, innerhalb von fgets
liegen.Eine Eingabezeile schneller lesen als fgets?
Gibt es schnellere Möglichkeiten, eine Textzeile zu erhalten? Meine Anwendung ist single-threaded ohne Absicht mehrere Threads zu verwenden. Die Eingabe kann von der Standardeingabe oder von einer Datei erfolgen. Danke im Voraus.
Was ist die durchschnittliche Länge (und mögliche stdev) der Zeilen, die Ihr Programm analysiert? Dies hilft, den schnellsten Weg zu finden, auf sie zuzugreifen. – Juliano
@Juliano, die Zeilen sind immer weniger als 260 Zeichen lang. Ich habe bereits eine Leitungsaufbau-Schleife vermieden. – dreamlax
Kontrollieren Sie das Eingabeformat? Könnten Sie es kompakter machen? – Dave