Dlaczego V8 nie jest w stanie zoptymalizować bloków try-catch-finally, gdy wydaje się, że inne znane środowiska wykonawcze (SpiderMonkey, Chakra) nie mają z tym żadnego problemu?Dlaczego V8 nie może zoptymalizować try-catch-finally?
Odpowiedz
Nie ma żadnego szczególnego powodu, poza tym, że kwestia ma względnie niski priorytet.
ta zostanie zoptymalizowany w pewnym momencie
to sprawdzić chromium v8 issue 1065
Jeśli kierujesz V8 można przenieść try-catch do osobnej funkcji, ale należy to zrobić tylko wtedy, gdy jest to kwestia rzeczywistym wydajność w przeciwnym razie jest to tylko przedwczesna optymalizacja.
„Programiści marnować ogromne ilości czasu myśleć o lub martwić, prędkości niekrytycznych części swoich programów, a te próby sprawności faktycznie mają silny negatywny wpływ podczas debugowania i konserwacja są uznawane. trzeba zapomnieć o małe wydajności, powiedzmy około 97% czasu: przedwczesny optymalizacji jest korzeniem wszelkiego zła Jednak nie powinniśmy przechodzić nasze możliwości w tej krytycznej 3%”- Donald Knuth
. T on tylko funkcja, która najprawdopodobniej nigdy nie zostanie zoptymalizowane są
- funkcje z „debuggera” oświadczenie
- funkcje, które wymagają eval()
- Funkcje, które zawierają „z” oświadczeniem
Inne problemy z optymalizacją powinny zostać w pewnym momencie naprawione.
- 1. Dlaczego VC++ nie może zoptymalizować opakowania całkowitego?
- 2. Dlaczego Scala nie może zoptymalizować tego dopasowania do przełącznika?
- 3. Nie można zoptymalizować tabeli innoDB
- 4. Jak zoptymalizować pętlę, która może być w pełni ścisła?
- 5. C++: Czy kompilator może zoptymalizować ten segment kodu?
- 6. Google JavaScript V8 - wielowątkowość
- 7. node.js moduł v8-profiler nie zainstaluje
- 8. v8 | ręcznie zainicjować śmieciarz
- 9. V8 FunctionTemplate Klasa Instancja
- 10. Budynek v8 bez JIT
- 11. Dlaczego MongoDB może utworzyć unikalny indeks, ale Mongoid nie może?
- 12. Dlaczego str nie może uzyskać drugiego parametru, gdy __str__ może?
- 13. Dlaczego ta metoda wyszukiwania nie może być skalowalna?
- 14. Manipulowanie V8 ast
- 15. Dlaczego FacesServlet nie może mieć wzorca url/*.?
- 16. VS8 nie może obsłużyć file.close(); file.open() ;, dlaczego?
- 17. Dlaczego ten program nie może przechwycić wyjątku?
- 18. Dlaczego Scala nie może znaleźć pakietu org.apache.commons.lang?
- 19. Dlaczego vtable nie może zawierać duplikatów funkcji?
- 20. Dlaczego toString() nie może być metodą statyczną?
- 21. Dlaczego WinDBG nie może znaleźć pliku mscordacwks.dll?
- 22. Dlaczego JSON nie może zapisać funkcji obiektu?
- 23. Dlaczego Interfejs nie może być chronione metody
- 24. Dlaczego ładowanie formularza nie może przechwycić wyjątku?
- 25. Dlaczego Chrome nie może animować filtra CSS?
- 26. R.styleable nie może zostać rozwiązany, dlaczego?
- 27. dlaczego jquery nie może dokładnie ożywiać liczby?
- 28. Jak zoptymalizować WZP Query
- 29. Jak zoptymalizować poniższe zapytanie?
- 30. Jak zoptymalizować JavaScript?
Jako późniejsze uzupełnienie tej odpowiedzi, należy zauważyć, że nowy kompilator TurboFan w wersji V8 teraz optymalizuje zarówno try-catch-finally, jak i inne funkcje: https://news.ycombinator.com/item? id = 12178856 – csvan