Warum ist V8 nicht in der Lage, Try-Catch-Finally-Blöcke zu optimieren, während andere bekannte Laufzeiten (SpiderMonkey, Chakra) scheinbar keine Probleme damit haben?Warum kann V8 nicht endlich versuchen zu versuchen?
Antwort
Es gibt keinen besonderen Grund außer das Problem hat eine relativ niedrige Priorität.
Dies wird
Check this out chromium v8 issue 1065
an einem gewissen Punkt zu optimieren Wenn Sie v8 Ziel können Sie versuchen, Beifang separate Funktion bewegen, aber Sie sollten dies nur tun, wenn es eine echte Performance-Problem ist Ansonsten ist es nur vorzeitige Optimierung.
„Programmierer verschwenden enorme Mengen an Zeit darüber nachzudenken, oder sich Gedanken über die Geschwindigkeit von nicht kritischen Teile ihrer Programme und diese Versuche an Effizienz haben tatsächlich eine starke negative Auswirkungen beim Debuggen und Wartung berücksichtigt werden. wir sollten über kleine Effizienz, sagen wir etwa 97% der Zeit vergessen: vorzeitige Optimierung ist die Wurzel allen Übels Aber wir nicht unsere Chancen passieren sollte in diesem kritischen 3%“- Donald Knuth
. T er einzige Funktion, die höchstwahrscheinlich nie mit einer „Debugger“ Anweisung
- Funktionen optimiert werden, dass ein „mit“ Anweisung enthalten
Andere Probleme mit der Optimierung sollten irgendwann behoben werden.
- 1. Python versuchen, außer endlich
- 2. versuchen fangen endlich Abschnitt
- 3. Python versuchen/endlich für die Flusskontrolle
- 4. Versuchen
- 5. versuchen
- 6. Warum nicht versuchen mit lock in Java?
- 7. Versuchen, MockSequence zu verstehen
- 8. Versuchen, AppDomains zu vermeiden
- 9. Versuchen, Ereignis zu C#
- 10. Versuchen, goroutines zu verstehen
- 11. Versuchen, drei Basisklassen zu erben und kann nicht
- 12. Versuchen, einen Virus zu entschlüsseln
- 13. Versuchen, statische Konstruktoren zu verstehen
- 14. Python versuchen/außer: versuchen, mehrere Optionen
- 15. Versuchen, den Durchschnitt zu finden
- 16. ansible versuchen zu suchen, frage ich nicht
- 17. Versuchen, Variable netCDF zu definieren
- 18. Versuchen, meine App zu töten
- 19. Versuchen, in Android zu multiplizieren
- 20. Versuchen, den Stapel zu zerschlagen
- 21. hinzufügen versuchen ausführen zu pdo
- 22. Versuchen, JSON separat zu speichern
- 23. Versuchen, Boost
- 24. Versuchen, GC-Sammlungen zu reduzieren
- 25. VERSUCHEN, PLSQL Funktion zu verstehen
- 26. PDFBox: versuchen, PDF zu entschlüsseln
- 27. versuchen zu verstehen __self__ == "__main__"
- 28. Probleme versuchen Openssl_encrypt zu arbeiten
- 29. Versuchen, jQuery-Code zu deduplizieren
- 30. Ist es in Ordnung, versuchen Sie schließlich versuchen, innen zu fangen?
Als späte Follow-up zu dieser Antwort, sollte beachtet werden, dass der neue TurboFan-Compiler in V8 nun sowohl try-Catch-finally als auch andere Features optimiert: https://news.ycombinator.com/item? id = 12178856 – csvan