Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS]Wydajność - lepiej trzymać w pamięci czy wyliczać
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
juzwa
pewnie pierwszą odpowiedzią jest - że to zależy - ale czy jest jakaś ogólna reguła, ewentualnie od czego to zależy?

przykład - banalny, ale niech będzie - rozmiar diva, niech będzie, że jest potrzebny w ilus sytuacjach np w 10

czy lepiej jest trzymać ten rozmiar w zmiennych czy za kazdym razem go pobierać?

kolejne pytanie - czy wydajniejsze jest przechowywanie zmiennych jako zmiennych
Kod
var divH=0;
var divW=0;


czy jako obiektów (przyznam, że jest to dla mnie wygodniejsze, ale nie wiem czy lepsze, wydajniejsze, zalecane?)

Kod
var divP = {h:0,w:0};
/*i potem */
divP .h, divP.w;
kamil4u
Najlepiej sprawdzić sam* smile.gif
Cytat
przykład - banalny, ale niech będzie - rozmiar diva, niech będzie, że jest potrzebny w ilus sytuacjach np w 10

Oczywiście, że lepiej w zmiennej smile.gif - choć różnice są minimalne i przy 10 to ma praktycznie zerowe znaczenie

Cytat
kolejne pytanie - czy wydajniejsze jest przechowywanie zmiennych jako zmiennych czy obiektów

Nie mam pojęcia - wydaje mi się, że w zmiennych, ale to tylko wydaje się smile.gif

*no właśnie - prosty skrypt,który rozwiąże Twoje pytania:
Kod
<script>
function howLong(f,i,x){
for(x=new Date();i--;)window[f]()
return new Date()-x + 'ms'
}

function x1(){var a=1; var b='test';}
function x2(){var divP = {a:1,b:'test'};}

alert(howLong('x1',1000)+ ' vs '+howLong('x2',1000)); //haha miałem rację - u mnie całe 2 ms różnicy :)
//wywołanie howLong('nazwa_funkcji',ilość_powtórzeń)
</script>
erix
A nie prościej przetestować konkretny kod profilerem z Firebuga...?
juzwa
rośnie to i to w postępie większym niz liniowy

czy można zaryzykować tezę, że nie warto programować obiektowo w JS, bo to może jest estetyczne, ale za to mało wydajne?
kamil4u
JS to język obiektowy więc ciężko będzie nie pisać obiektowo smile.gif - a tak na poważnie(wiedząc co masz na myśli) to uważam, że przy większym projekcie jest to bez znaczenia pod względem wydajnościowym
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.