Ich habe ein Go-Programm, das Strings in eine Datei schreibt. Ich habe eine Schleife, die 20000 mal iteriert wird und in jeder Iteration schreibe ich etwa 20-30 Strings in eine Datei. Ich wollte nur wissen, welches der beste Weg ist, um es in eine Datei zu schreiben.Schreibvorgang Kosten [Go lang]
Ansatz 1: Halten Sie öffnen den Dateizeiger am Anfang des Codes und schreiben es für jeden String. Es macht 20000 * 30 Schreiboperationen.
Ansatz 2: Verwenden bytes.Buffer Go und speichert alles im Puffer und schreiben sie an der end.Also in diesem Fall sollte der Dateizeiger vom Anfang des Codes oder am Ende der geöffnet werden Code. Ist es wichtig?
Ich gehe davon aus Ansatz 2 sollte besser funktionieren. Kann jemand das mit einem Grund bestätigen? Wie ist das Schreiben auf einmal besser als das regelmäßige Schreiben? Weil der Dateizeiger sowieso geöffnet ist. Ich verwende f.WriteString(<string>)
und buffer.WriteString(<some string>)
Puffer ist vom Typ bytes.Buffer
und f
ist der Dateizeiger geöffnet.
Dies ist, was ['bufio'] (https://golang.org/pkg/bufio/) ist. – JimB