Slice, length a performance.

0

Cześć mam aplikację która jest na dość dużym zbiorze, wcześniej było to rozwiązane tak że praktycznie za każdym razem była iteracje po wszystkich elementach mimo że z góry było wiadomo że jakiś fragment tej tablicy jest kompletnie nie przydatny i nie zmienia wyniku outputa.

Dlatego chciałbym przed każdą operacją zrobić metoda slice i działać tylko na fragmencie zbiory. Jak to wygląda jeśli Chodzi O kwesie prędkości z użyciem metody slice a pozniej iteracja? Na jakiej podstawie w ogole język ocenia ze taką jest długość tablicy czy ma obciąć ja od fragmentu do fragmentu, bo chyba nie robi tego droga iteracjii..

Ze studiów za dużo nie wynioslem ale czy to nie ma związku z ilością bitow?

Więc podsumowując. Czy warto robić dla kwestii prędkości metodę slice i jak język pobiera długość tablicy / obcina tablice

0

Język nic nie ocenia, język to zestaw abstrakcyjnych reguł. Wszystko zależy od implementacji silnika, jak Cię interesują szczegóły implementacyjne to poczytaj opis konkretnej implementacji. Nic też nie stoi na przeszkodzie, żebyś sobie sam pomierzył co jest szybsze - wtedy będziesz wiedział czy jest sens się tym przejmować.

0

A czym najlepiej sprawdzac predkosc skryptu ?

0

console.time powinno Ci wystarczyć

0

W sumie sprawdzalem, i nie wiem czy to dobrze sprawdzam, ale iteracja po 350 elementach a po 20 jest praktycznie tak samo czasowo.. nawet jak obydwie wykorzstuja tylko funkcje map. np.

1
Billy Jones napisał(a):

W sumie sprawdzalem, i nie wiem czy to dobrze sprawdzam, ale iteracja po 350 elementach a po 20 jest praktycznie tak samo czasowo.. nawet jak obydwie wykorzstuja tylko funkcje map. np.

  1. Żeby porównanie czasowe miało sens to musi to przynajmniej kilka sekund działać. (przyjmij roboczo, że time taki np. z console.timeEnd ma dokładność 50ms ( to nieprawda - ale to użyteczne uproszczenie)).
  2. Możesz użyć profilera żeby dokładniej zobaczyć co jest ew. wolne (każda poważna przeglądarka to ma w narzędziach - nawet IE). (chociaż profiler fałszuje też wyniki..)
  3. Benchmarkowanie i wyciąganie z tego wniosków jest trudne - jak nie masz w tym paru lat doświadczenia, nie znasz enginów JS - to możesz przyjąć, że robisz te pomiary źle. (A dokładniej - będziesz wpadać w jakieś pułapki/specyficzne właściwości konkretnego engine ).
  4. Wyniki mogą być zupełnie inne na innych enginach (V8, SM, Chakra...)
  5. W twoim przypadku najprawdopodobniej czasy i różnice sę nieistotnie/niemierzalnie małe.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0