Wie viel schneller kann JavaScript (Programmiersprache) sein? Erreichen wir eine Obergrenze für die Geschwindigkeit?

Grob gesagt ist die Geschwindigkeitsbegrenzung in gerader Linie für JS die Geschwindigkeitsbegrenzung in gerader Linie für andere VM-basierte Sprachen. Typinferenz hat einen langen Weg vor sich, wir können (und werden) der Sprache und dem DOM neue Kerndatentypen hinzufügen, die die Speicher- und Konvertierungseffizienz verbessern, aber es wird immer Möglichkeiten geben, langsame JS-Programme zu schreiben.

Wie ich in einem anderen Thread sagte, ist die Frage nach “schnell” zunehmend “schnell für was?”. Es gibt einen Kompromiss zwischen Kompilierungs- / Optimierungszeit und Ladeleistung für viele Anwendungen, und wir können uns zunehmend darüber im Klaren sein, diese Kosten zu amortisieren (nur die Optimierung von Hot-Loops, die Behebung von Typ-Inferenzen, wenn es schief geht usw.). Für die meisten Webanwendungen ist die Frage der linearen JS-Leistung nicht einmal interessant. Es ist oftmals besser, Verbesserungen im Netzwerk, im DOM und in den verfügbaren APIs zu sehen, deren Fehler dazu führen, dass wir uns in erster Linie so stark auf JS stützen.

Laut Brendan Eich (dem Schöpfer von JavaScript) haben wir die Obergrenze für die JavaScript-Leistungsoptimierung noch nicht erreicht, und es gibt noch Möglichkeiten zur weiteren Optimierung. Brendan weist auch darauf hin, dass “schnell” (dh der Benchmark) richtig definiert werden muss.

Schauen Sie sich diesen Podcast an, in dem er das Problem ausführlicher bespricht: http: //www.aminutewithbrendan.co… .

Ich kenne JavaScript (v8) nicht, aber JavaScript (TraceMonkey + JaegerMonkey) wird auch ziemlich schnell:

http://arewefastyet.com/

Soweit ich das beurteilen kann, ist dies noch kein Rennen, das von einem einzigen Motor gewonnen wurde, und ich höre, dass die beteiligten Teams noch nicht über genügend Forschungsergebnisse verfügen, um sich zu bewerben.