Hallo,
hat jemand mehr wissen als die Google Suche und Google AI, wo ich nachlesen kann, welche Prozesse bei einer JS-Engine parallel ausgeführt werden?
JavaScript is single threaded, ja. Wenn man echte parallele Bearbeitung möchte, muss man auf Web Worker zurückgreifen. Diese können aber sehr teuer sein, d.h. die Performance wird ggfs. nachteilig beeinflusst (da eine WebWorker-Instanz erstellen, Daten hin- und hersenden relativ viel Rechenzeit benötigte). Deshalb ist es manchmal besser, wenn die Dinge direkt im mainthread bearbeitet werden.
Aber nach meiner Kenntnis kann eine JavaScript-Engine gewisse Dinge parallel implementieren, d.h. es wird ein eigener Thread genutzt. Zum Beispiel ist es wohl so, dass sowohl in der Mozilla JS-Engine als auch die V8-Engine ein eigener Thread für fetch() requests getriggerter wird.
Gibt es eine Übersicht oder kann man ermitteln, ob gewisse Dinge von der JS-Engine in einem eigenen Thread abgearbeitet werden?
Hintergrund:
Ein großer Datensatz soll in der IndexedDB abgelegt werden. Ich stelle mir nun die Frage, ob es sinnvoll ist, den Datensatz im Mainthread in die Indexed DB zu schreiben, oder doch auf WebWorker zurückzugreifen (was den Arbeitsspeicher zusätzlich belastet, da die Daten zur Übersendung and den Worker geklont werden.)
Wenn ich jetzt wüsste, dass die JS-Engine sowieso das Schreiben in eine IndexDB in einen separaten Thread auslagert, könnte man es im Mainthread über einen asynchronen task und einem callback lösen.
Gibt es dazu irgendwo Information?