![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 43 Dołączył: 5.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Od dłuższego czasu zajmuję się programowaniem w JavaScript i postanowiłem podzielić się swoją wiedzą i napisać kurs JavaScript.
Kurs możecie znaleźć pod adresem http://kursjs.net76.net/. Zapraszam do czytania. Dziękuję za wszelkie uwagi. Kurs będzie dopracowywany z upływem czasu. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Cytat Już widzisz różnicę w deklaracji i sprawdzaniu? Prościej nie da się tego wyjaśnić. Wreszcie zrozumiałem o co Ci chodzi (IMG:style_emoticons/default/smile.gif) Powiem szczerze, że o tym nie wiedziałem. Niestety nie mogę nigdzie znaleźć informacji na ten temat - a dokładniej w żadnej dokumentacji, bo na blogu różni ludzi różnie piszą. Jak możesz przytocz informację na ten temat. Ale mniejsza z tym. Zamiast szukać po dokumentacjach i patrzeć do kodu przeglądarek proponuję zrobić niezależny test i będzie wszystko wiadomo: Kod <script> function S(F,C,t){for(t=new Date();C--;F());return new Date()-t; } //speed, F->funkcja, C->ilość cykli function test1(){ var i; for(i=0; i <= 100000; ++i){ } } function test2(){ for( var i=0; i <= 100000; ++i){ } } function test3(){ for( var i=0; i <= 100000; i++){ } } var j; function test4(){ for(j=0; j <= 100000; j++){ } } alert ( S(test1,10000)+' ms <-- 1' ); alert ( S(test2,10000)+' ms <-- 2' ); alert ( S(test3,10000)+' ms <-- 3' ); alert ( S(test4,10000)+' ms <-- 4' ); </script> Od razu widać, że zmienna globalna( test4 ) to spory spadek na wydajności. Jednak wszystkie pozostałe 3 rozwiązania są do siebie bardzo zbliżone. Różnica jest około 3 milisekund. W większości przypadków test1( Twój faworyt ) wypada najlepiej, ale nie zawsze. Teraz szybie obliczenia: 10000*100000 = 1 000 000 000 = 1 miliard! I różnice są rzędu 3ms. Dodatkowo trzeba zaznaczyć, że średnia wyników( dla test 1) to 1015 ms. Czyli 0,296%. Teraz pytanie czy warto się przejmować spadkiem wydajności o około 0,296%( i nie zawsze jest powiedziane, że "test1" jest najszybszy - podkreślam, że w większości wypadków tak, ale to nie oznacza, że we wszystkich )? Przy myśleniu nad tym pytaniem warto sobie przypomnieć, że czytając taki kurs czytający jest z reguły początkującym. Jest to pytanie retoryczne. Niech każdy sam sobie odpowie na to pytanie i ew. zmieni, bądź nie decyzję. Każdy z nas swoją opinię na ten temat wyraził, więc nie ma sensu prowadzić tego sporu( chyba, że masz jakąś interesującą uwagę do przekazania ). Chciałbym zaznaczyć, że nie jestem przeciw optymalizacji kodu nawet jeżeli tyczy się to około 0,296%. Sam z reguły to robię, jednak nie oznacza to, że te różnice są zauważalne i, że początkujący musi o nich myśleć. Myślę, że optymalizacji należy szukać gdzie indzie niż w konstrukcji pętli for, bo moim zdaniem 3ms na miliard obrotów to żadna oszczędność, a na pewno w większym kodzie da się poprawić mnóstwo innych rzeczy. Cytat bo nie widzisz potrzeby aby początkujący wiedział że istnieje alternatywa/optymalizacja Całkowicie nie o to mi chodzi. Moim zdaniem początkujący nie musi wiedzieć wszystkiego na raz. Z biegiem czasu dowie się o nowych metodach, algorytmach i jego kod będzie coraz lepszy. Tylko na początku trzeba zachęcić go do nauki, a podając mnóstwo informacji "na raz" moim zdaniem go zniechęcamy. Jak złapie bakcyla to wtedy należy mu mówić o wszystkim (IMG:style_emoticons/default/smile.gif) Pozdrawiam. PS. Z tym źródłem to było na serio. Jak możesz przytocz jakieś rzetelne informacje na ten temat. Zawsze lubię się dowiedzieć czegoś nowego. Jeśli to prawda to dzięki za poprawę. PS2. Oczywiście wyniku testów czasowych są sprawdzane na moim kompie i u każdego mogą być różne. Wpływa na to wszystko (IMG:style_emoticons/default/smile.gif) Ale proporcje powinny być podobne. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 05:25 |