Co to jest „(program)” w kolumnie funkcji debugera Chrome?
Co to jest „(program)” w kolumnie funkcji debugera Chrome?
Odpowiedzi:
(program)
to sam Chrome, rdzeń drzewa wywołujący cały inny kod ... jest tam, ponieważ przejście z kodu natywnego na JavaScript, ładowanie zasobów itp. musi się gdzieś rozpocząć :)
Przykłady widoku drzewa można znaleźć w dokumentacji narzędzia dla programistów Chrome .
Wierzę, że (program) jest rodzimym kodem, a nie rdzeniem drzewa.
Zobacz ten wątek:
https://bugs.webkit.org/show_bug.cgi?id=88446
Bardziej przypomina to wywołania systemowe niż main ().
Najwyraźniej obejmuje to czas bezczynności. Ponadto niektóre profilowanie (programu) jest dostępne z chrome: // profiler /
Jak mówi @Nick, musi gdzieś zacząć.
Wygląda na to, że część CPU Profiler jest podobna do wielu innych profilerów opartych na tych samych pojęciach co gprof .
Na przykład self jest prawie bezużyteczną liczbą, chyba że istnieje coś takiego jak bąbelkowa duża tablica liczb w jakimś kodzie, który można edytować. Wysoce nieprawdopodobne.
Suma powinna obejmować osoby biorące udział, więc jest to bardziej przydatne. Jednak dopóki próbki nie zostaną pobrane zarówno w czasie zablokowanym, jak i w czasie wykonywania, nadal jest całkiem bezużyteczne, z wyjątkiem programów całkowicie związanych z procesorem.
Daje ci te statystyki według funkcji, a nie linii kodu. Oznacza to (jeśli możesz polegać na całkowitym procencie), że funkcja kosztuje tyle, w tym sensie, że jeśli możesz w jakiś sposób sprawić, że zajmie to zero czasu, na przykład poprzez zubożenie go, ten procent to tyle, ile możesz zaoszczędzić.
Jeśli więc chcesz skupić się na kosztownej funkcji, musisz znaleźć w niej coś, co można zoptymalizować. Aby to zrobić, musisz wiedzieć, jak czas jest podzielony między wiersze kodu w funkcji. Gdybyś kosztował według linii kodu, zabrałbyś Cię bezpośrednio do tych linii.
Nie wiem, czy będziesz w stanie uzyskać lepszy profiler, taki jak sampler stosu zegara ściennego raportujący na poziomie linii, taki jak Zoom . Oto jak to robię .