Hallo Jürgen,
Hallo Michael,
wo kommen denn die Daten her?
Kommen aus einem web-stream, werden ausgelesen, angepasst und müssen gleich wieder weggeschrieben werden, weil sonst der Arbeitsspeicher darunter leidet.
Können die nicht im Worker erzeugt/verarbeitet werden?
Ist egal, ob ich das Problem des "Wegschreibens" im mainthread oder im worker thread habe. Und ich möchte den Stream ungerne anhalten. Es dauert jetzt schon ca. 110 Sekunden, es muss schneller werden.
Wieviele GB willst du denn an die Datenbank schicken? Evtl. ist der Datentransfer an den Worker ja garnicht so ein Problem.
Die einzelnen Datensätze sind nicht groß, es sind aber eben sehr viele, ca. 80.000 pro Einlesevorgang. Des Wegschreiben (zum späteren Einlesen bei Bedarf) kostet CPU-Zeit, ebenso eine Workerinstanz ist relativ zeitintensiv. Einen Worker würde ich eben nur nutzen wollen, wenn im main thread das Schreiben in eine IndexedDB nicht wirklich parallel ablaufen kann. Parallel bedeutet hier, die Datensätze in unterschiedliche Tabelle reinschreiben. Ich kann mir natürlich auch einen CPU-Monitor aufrufen und dort die Auslastung anschauen. Aber das muss doch auch irgendwo nachlesebar sein, ob die JS-Engige gewissen DInge selbst auf einen seperaten Thread auslagert.
Aber es müsste doch einen besseren Weg geben, um zu testen oder eine Suchmaschine zu befragen, ob eine async Aufgabe. Gerade im Zeitalter von Multicore CPUs ist es doch sinnvoll wenn möglichst alle CPU-Cores genutzt werden und schennler fertig ist.
Betriebssysteme haben so etwas wie eine Aktivitätsanzeige. Bei meinem Macbook geht die Anzeige auf fast 1000% hoch, es werden also 10 CPU-Kerne von 10 Workern gequält.
Die Aktivitätsanzeige zeigt auch die Speicherbelegung an.
Gruß
Jürgen