Jaki jest najlepszy sposób profilowania wykonywania javascript? [Zamknięte]

94

Czy istnieje dobry program do profilowania dla javascript? Wiem, że firebug ma pewne wsparcie dla kodu profilującego. Ale chcę określić statystyki w dłuższej skali. Wyobraź sobie, że tworzysz dużo kodu javascript i chcesz określić, jakie faktycznie są wąskie gardła w kodzie. Na początku chcę zobaczyć statystyki profilu każdej funkcji javascript i czasu wykonania. Następnym krokiem byłoby włączenie funkcji DOM. To w połączeniu z działaniami, które spowalniają rzeczy, takie jak operacje na drzewie renderowania, byłoby idealne. Myślę, że dałoby to dobre wrażenie, gdyby wydajność została zabita w moim kodzie, podczas przygotowywania DOM lub aktualizacji drzewa renderowania / wizualizacji.

Czy jest coś bliskiego temu, czego chcę? Albo jakie byłoby najlepsze narzędzie do osiągnięcia większości tego, co opisałem? Czy byłaby to samodzielnie skompilowana przeglądarka z silnikiem javascript wzbogaconym o funkcjonalność profilu?

Norbert Hartl
źródło
Jeśli NODE_ENV=production node --prof app.jsnie, odwiedź stackify.com/node-js-profilers lub softwarerecs.stackexchange.com, aby znaleźć alternatywy.
Cees Timmerman

Odpowiedzi:

63

Firebug

Firebug zapewnia bardzo szczegółowy raport dotyczący profilowania. Powie ci, ile czasu zajmuje każde wywołanie metody w gigantycznej (szczegółowej) tabeli.

console.profile([title])
//also see
console.trace()

Musisz zadzwonić, console.profileEnd ()aby zakończyć blokadę profilu. Zobacz konsolowe API tutaj: http://getfirebug.com/wiki/index.php/Console_API

Kos

Blackbird ( oficjalna strona ) ma również prostszy profiler (można go pobrać tutaj )

geowa4
źródło
Napisałem, że znam Firefoksa. Chcę mieć więcej statystyk z przeglądarki, które mają wpływ na wykonanie javascript.
Norbert Hartl
1
Podobnie jak w Firebug i możesz profilować bezpośrednio z konsoli, jeśli nie chcesz go kodować.
Chris B
1
Firebug to najlepsze narzędzie, jakie otrzymasz.
Sasha Chedygov
1
To samo działa w Safari Web Inspector
olliej
9
Firebug jest dobry iw ogóle, ale nie mogę uwierzyć, że jest tu tak wielu ludzi skandujących "Firebug, Firebug!" zaraz po tym, jak OP powiedział wyraźnie , że chce profilować swój kod z wielu przeglądarek.
JMTyler
20

Narzędzia programistyczne Chrome mają wbudowany profiler.

Vince
źródło
2
+1, Speed ​​Tracer jest dobry i ważne jest (jak wspomniano w OP), aby profilować swój kod w nie tylko Firefoksie, aby zobaczyć, jak wpływa na to pojedyncza przeglądarka.
JMTyler
4

Firebug + Firefox to pozycja obowiązkowa. Pasek narzędzi programisty IE 8 ma również wbudowany profiler (IE 8 jest dostarczany z paskiem narzędzi programisty).

Chris Brandsma
źródło
4

Inspektor sieci Safari 4 zawiera również profiler (chociaż wersja z nightlies jest ulepszona w stosunku do rekurencyjnych wywołań funkcji). Inspektor sieci obsługuje również interfejsy API profilera Firebug.

olliej
źródło
4

Dla JavaScript, XmlHttpRequest, DOM Access, Rendering Times i ruchu sieciowego dla IE6, 7 i 8 możesz skorzystać z DARMOWEJ wersji dynaTrace AJAX

Andreas Grabner
źródło
proszę o instrukcję jak zainstalować to jako dodatek / rozszerzenie w przeglądarce.
T.Todua