2010-12-12 11 views
6

Zastanawiam się, czy białe spacje i komentarze spowalniają JavaScript? Robię brutalny atak sił, który zajmuje trochę czasu (30 sekund). Usuwanie białych znaków nie wykazuje znacznego wzrostu szybkości, ale myślę, że przeglądarka musi tylko parsować więcej.Czy spacje/komentarze spowalniają Javascript w dół?

Czy można w ten sposób usunąć niepotrzebne spacje i komentarze, aby przyspieszyć cały proces?

+0

Idealnie, javascript powinien być skompresowany w środowiskach produkcyjnych. Odpowiedź brzmi: tak, jest użyteczna. –

+0

Zapomniałem wspomnieć, że nie będzie to na stronie internetowej ani zbyt często ściągane; w rzeczywistości wystarczy kilka razy przeprowadzić kilka algorytmów, aby obliczyć dla siebie. Tak więc przepustowość nie jest tym, o czym mówię. – pimvdb

+0

@Sergey: to nie jest prawda. Komentarze i białe spacje miały znikomy wpływ na wydajność nawet przed nowymi przeglądarkami z wbudowanym kompilatorem JIT. –

Odpowiedz

10

Ludzie zwykle używają minimalizatorów, aby zmniejszyć SIZE skryptu, aby poprawić prędkość pobierania, zamiast zmieniać prędkość analizowania skryptu.

Spacje i komentarze będą miały niewielki wpływ na czas działania przeglądarki, ponieważ parser musi sprawdzić, czy jest to spacja lub komentarz, ale w rzeczywistości będzie to tak mała z obecną mocą obliczeniową, byłoby niemożliwe do zauważenia jakiegokolwiek wpływu.

ROZMIAR jest jednak nadal ważny, nawet przy dużej przepustowości dostępnej w naszym świecie szerokopasmowego Internetu.

+0

Rozumiem, więc zachowam go wtedy. Minimum za każdym razem zajmie dużo więcej czasu, a ja i tak nie publikuję algorytmów online. – pimvdb

+0

Czy możesz wyjaśnić, co to znaczy zmniejszyć ROZMIAR skryptu? Czy masz na myśli liczbę postaci? – Squirrl

+0

tak, Rozmiar == bajtów danych, więc może w przybliżeniu równać się liczbie znaków. – Codemwnci

3

Białe spacje i komentarze zwiększają rozmiar pliku JavaScript, co spowalnia pobieranie pliku z serwera - zminimalizowanie to proces usuwania niepotrzebnych znaków z pliku JavaScript, aby zmniejszyć i ułatwić pobieranie .

Jednakże, ponieważ wspomniałeś o ataku z użyciem brutalnej siły, wąskie gardło jest prawdopodobnie , a nie do pobrania. Spróbuj użyć profilera, aby znaleźć to, co spowalnia Cię.

3

Zawsze istnieje kwestia minimalizowania, łączenia i gzipowania zasobów w celu ułatwienia ładowania serwera.

  • Mineralizacja to działanie, do którego się odwołujesz, pozbycie się niepotrzebnych spacji i komentarzy, aby zmniejszyć prędkość pobierania.
  • Łączenie najprawdopodobniej spowoduje jeszcze większy wzrost prędkości renderowania strony; jest to akt łączenia wszystkich plików javascript w jeden, a wszystkie pliki css w jeden (można to zrobić także dla większości obrazów, ale to wymaga więcej pracy). Ma to na celu zmniejszenie liczby żądań, które przeglądarka musi wprowadzić w stosunku do serwera, aby móc wyświetlić stronę.
  • GZipping to działanie polegające na dalszym kompresowaniu danych w formacie spakowanym do przeglądarek, które wskazują, że akceptują takie dane. To dodatkowo zmniejsza rozmiar, ale dodaje dodatkowe obciążenie pracą na obu końcach. Prawdopodobnie zobaczysz w tym zysk netto.

W zależności od środowiska, w którym pracujesz, są różne komponenty, które pomogą ci w tym, co zwykle obejmuje wszystkie powyższe za jednym razem.

Czas potrzebny do pobrania kodu z serwera ma bezpośredni wpływ na czas renderowania strony. JavaScript jest blokowany, co oznacza, że ​​blok JS zapobiegnie jakiemukolwiek dalszemu renderowaniu, dopóki blok nie zostanie całkowicie wykonany. W związku z tym, w przypadku umieszczania plików javascript (tj. W którym punkcie procesu renderowania będą one wymagane), liczba żądań, które będą pobierane do pobrania, oraz ilość danych do pobrania, będą miały wpływ na stronie ładuje się tak, jak wygląda dla użytkownika.

Po przeanalizowaniu przez przeglądarkę kodu, javascript, css lub html, utworzy on wewnętrzne reprezentacje części, której potrzebuje, aby zapamiętać, a faktyczne formatowanie nie będzie już miało na nie wpływu.

+0

Dzięki, nauczyłeś mnie bardzo przydatnych rzeczy tutaj. Jednak mój przypadek nie ma nic wspólnego z serwerami, ponieważ używam go lokalnie. Będę o tym pamiętać w przyszłości, jest to naprawdę pomocne. – pimvdb

+0

Tak, w przypadku lokalnych wdrożeń możesz bezpiecznie to zignorować. Jeśli kiedykolwiek coś takiego wykonasz, zechcesz znaleźć narzędzie, które je zautomatyzuje. Uważaj, kiedy zaczniesz używać tego w produkcji, będziesz także chciał używać go lokalnie. Nie z powodu lokalnych korzyści prędkości, ale dlatego, że chcesz, aby twoje środowisko programistyczne było jak najlepiej dopasowane do twojego środowiska produkcyjnego. To zupełnie inna kwestia, tho :) –

0

Ma niewiele ma wpływu na rzeczywistą szybkość przetwarzania, jednak ...

mniejszy rozmiar => => mniejsze pasmo pomniejszonej o koszty => ??? => zysk!

1

Nie sądzę, że biały znak w js-kodzie spowalnia działanie egzekucji tego. O ile rozumiem, interpreter javascript usuwa wszystkie komentarze i nadmiarowe spacje przed przetworzeniem. Może to wpłynąć na czas pobierania i tym samym czas ładowania strony internetowej.

Zobacz więcej informacji na ten temat: here.

+0

Jeśli to prawda, nie sądzę, że będę musiał w ogóle o to dbać. Dzięki za link. – pimvdb

Powiązane problemy