Ich versuche, einen Parser für eine große Menge an Datei zu erstellen, und ich kann Ressource nicht finden, was ich "verschachtelte Göroutinen" nennen kann (vielleicht ist das nicht der richtige Name?).Sollten wir verschachtelte Göroutinen machen?
Angesichts einer Menge von Dateien, jeder von ihnen hat viele Zeilen. Sollte ich:
for file in folder:
go do1
def do1:
for line in file:
go do2
def do2:
do_something
Oder sollte ich nur „eine Ebene“ von goroutines, und gehen Sie wie folgt vor:
for file in folder:
for line in file:
go do_something
Meine Frage Ziel in erster Linie Performance-Probleme.
Danke für das Erreichen dieses Satzes!
Ist es so schwer, nur beides zu versuchen und zu sehen? Ich denke, es hängt stark von Ihrem Betriebssystem, Ihrer Festplatte und Ihrem Dateisystem ab. Zu wenig Parallelität bedeutet Blockieren des Wartens auf I/O, zu viel bedeutet Festplatten-Thrashing. – Thomas
goroutines sind unabhängig voneinander geplant. Es spielt keine Rolle, ob Sie sie aus einer verschachtelten Schleife oder verschachtelten Funktionen aufrufen. Calling N goroutines ruft N goroutines an. – JimB
IMHO gibt es andere bessere Werkzeuge für diese Art von Arbeitsplätzen geeignet, setzen Sie das weel nicht neu erfinden, schauen hadoop oder den Funken Projekt – fabrizioM