Start Top Nachrichten JavaScript Engine: V8 8.7 beschleunigt native Aufrufe und erweitert das Threading

JavaScript Engine: V8 8.7 beschleunigt native Aufrufe und erweitert das Threading

0
JavaScript Engine: V8 8.7 beschleunigt native Aufrufe und erweitert das Threading

Google hat Version 8.7 der V8-JavaScript-Engine veröffentlicht. Die Version enthält eine syntaktische Innovation, die die asynchrone Überwachung von Speicherbereichen in Threads ermöglicht. Es gibt auch eine neue API, die C ++ – Aufrufe beschleunigen soll.

Die Fast C-API soll die Interaktion zwischen den in der Engine ausgeführten JavaScript-Anwendungen und dem C ++ – Code verbessern. Laut dem V8-Team scheinen die JavaScript-Bindungen zwischen der Engine und dem für die Integration verantwortlichen Embedder der Engpass für leistungskritische Funktionen zu sein.

Die ursprüngliche Implementierung kam zustande gemäß der Erklärung der Fast C API mit den Verbindungen mit der für 2D und 3D konzipierten Grafikbeschleunigung WebGL-Schnittstelle oder sein Nachfolger WebGPU. Es erfüllt jedoch nicht die Leistungsanforderungen von API-Aufrufen, die beispielsweise der Hardware sehr nahe kommen. Die neue API kennt nicht nur die POD-C ++ – Typen (Plain Old Data), sondern auch einige erweiterte Typen im aktuellen Status und ist für zusätzliche Ergänzungen wie z int64_t oder TypedArray bereit.

Die Fast C-API erstellt die interne Struktur v8::CFunctionInfoDies stellt die Rückrufsignaturen dar, die sich auf die C ++ – Typen beziehen. Um es zu verwenden, müssen Entwickler zuerst einen Rückruf mit einer bestimmten Signatur und dann die v8::CFunction::MakeMethode mit dem Rückruf, um eine geeignete Kopie der zu erhalten v8::CFunction zu machen. Dann arbeiten Sie wie gewohnt am v8::FunctionTemplatedie zusätzlich zur schnellen API den regulären Rückruf erhält.

Die syntaktische Ergänzung für Atomics wie so oft bei V8 geplanter JavaScript-Standard vor: Atomics.waitAsync ist eine nicht blockierende Variante von Atomics.waitDas ist eine Position in einer Int32Array auf einen Wert geprüft. Weil es rein ist Atomics.waitDie Methode blockiert den Programmablauf, er ist nicht in main erlaubt, aber die asynchrone Variante ist.

Weitere Details finden Sie hier Siehe den V8-Blog. Wie üblich befindet sich die JavaScript-Engine in der Beta-Phase, bis die entsprechende Chrome-Version 87 als stabile Version herauskommt. Anweisungen, wie Entwickler auf das Git-Repository zugreifen können, finden Sie hier in der V8-Dokumentation. Die aktuelle Engine ist auch in der Beta-Version von Chrome 87 enthalten, die Google zur Verfügung steht den Chrome-Beta-Channel bietet an.


(Arm)

Zur Homepage gehen

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein