Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS/UŻYCIE PAMIECI] Aplikacja wykorzystująca sporo JS stale zwiększa zuzycie pamięci, jak temu zaradzić?
juzwa
post
Post #1





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 10.07.2006

Ostrzeżenie: (0%)
-----


Jestem w trakcie robienia aplikacji opartej w dużej części na JS i danych w formacie JSON, wykorzystuję do tego jQuery 1.3

chciałem zobaczyć jak to będzie działac w dłuższym okresie czasu i zapuściłem jakies dane testowe - uruchomiłem program i zostawiłem komputer - o ile sam program działał to jak sprawdziłem użycie pamięci przez przeglądarkę (FF) to z 100MB podskoczyło do 1,4GB tak 14x

pewnie to nie jest normalne i coś robię źle, ale co?

ogólnie aplikacja wygląda następująco

prócz jQuery są jeszcze 4 klasy, na podstawie tych klas jest stworzonych 6 obiektów, we właściwościach tych obiektów sa pojedyncze zmienne (int), a JSON jest najczęściej argumentem metody wywoływanej dla danego obiektu, prócz tego są dwa JSON-y globalne ładowane na początku aplikacji

nie chcę wklejać całego kodu JS, bo to szkoda i miejsca i czasu - ale mam pytanie, na co zwrócić uwagę, co mogę zmienić, poprawić ulepszyć

no chyba że takie zachowanie jest normalne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
juzwa
post
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 10.07.2006

Ostrzeżenie: (0%)
-----


wycieki pamięci w JS? niby cos musi "trzymać" zmienną i cały czas tworzyć nową - inaczej by zadziałał garbage collector

co więcej - zauwazyłem, że nawet jak nic się nie dzieje to uzycie pamięci rośnie - może się coś dzieje, ale nie jestem tego świadomy?

odpaliłem Safari 4 - przyrost był mniejszy i co więcej gdy np miałem już iles tam MB to jak dałem minimalizację to schodziło do 16-11MB potem przy maksymalizacji skakało do jakiś 28-33MB potem coś tam robiłem - rosło, ale wystarczyło że zminimalizuję/zmaksymalizuję i wracało do jako takiej normy

w przypadku FF takiej bajery z min/max nie ma

sprawdziłem też na Operze 9.64 - najmniej zużywa pamięci tak między 2/3 a 3/4 tego co Safari 4, a dodtakowo wystepuje bajer z min/max

czy to ma coś wspólnego z rysowaniem i odświerzaniem ekranu - przyznam, że mam trochę ruchomych rzewczy, jais wykres na płótnie, trochę divów absolutnych i takie tam, troche ajaxa itp itd


dla porównania zapuściłem sobie mapy googla i tak sobie porównalem i zobaczyłem, że przy poruszaniu się też jest tam przyrost pamięci - co prawna ja nie mam map, ani tylu zmian, ale czy pryczyna może tkwić w zmianie rzeczy widzialnych dla uzytkownika

Czas wykonania (30.094ms, 1837 wywołań)
Czas wykonania (31.14ms, 1641 wywołań)
Czas wykonania (27.295ms, 1643 wywołań)
Czas wykonania (29.509ms, 1743 wywołań)
Czas wykonania (29.189ms, 1643 wywołań)
Czas wykonania (29.2ms, 1643 wywołań)
Czas wykonania (29.204ms, 1642 wywołań)
Czas wykonania (29.729ms, 1643 wywołań)
Czas wykonania (29.392ms, 1642 wywołań)
co do czasu wywoływania - powyższe zestawienie polegało na czekaniu na wykonie akcji poprzez jakiś timer w JS (wykonywanie cykliczne)

chyba nie jest źle i to chyba świadczy, źle o JS? w tym czasie uzycie pamieci wzrosło z 68 do 126MB (FF)

nie wiem może, ktos na tej podstawie będzie mógł coś więcej powiedzieć

Ten post edytował juzwa 16.06.2009, 12:02:27
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 07:09