Ja efter att ha bråkat en del med FlashDevelop fick jag igång min Profiler. Där upptäckte jag en intressant sak, ett TimerEvent som jag inte startat ligger och snor minne!
Så fort man lägger till något i displaylist eller skapar ett objekt som har andra objekt i sig, dock inte nödvändigtvis tillagda i displaylist, så kickar ett TimerEvent igång. Detta ökar ständigt minneshanteringen och det gjorde mig först oroad över att jag hade grejer igång i bakgrunden, men sedan när jag bantat bort allt så insåg jag att den faktiskt alltid är igång!
Man kan ju hoppas att garbage collectorn kommer och rensar upp här efter ett tag och att minnet dumpas. Kan någon som vet hur Flash fungerar på så låg nivå förklara hur detta beter sig? :) hade i så fall varit intressant att höra!
Jag tänker mig att det är renderingen av scenen som skapar detta och det verkar som att ett nytt TimerEvent skapas vid varje frame. Dvs att om man kör i 30 fps som jag oftast gör så kommer man att ha 30 nya TimerEvents varje sekund. Om då varje TimerEvent väger säg 10 bytes så får man alltså:
1 sek: 300 bytes
1 minut: 17,5 kb
10 minuter: 175 kb
1 h: 1 mb
Känns rätt onödigt, speciellt om inget i själva verket uppdateras... In Garbage Collector I trust (hoppas!)
Så fort man lägger till något i displaylist eller skapar ett objekt som har andra objekt i sig, dock inte nödvändigtvis tillagda i displaylist, så kickar ett TimerEvent igång. Detta ökar ständigt minneshanteringen och det gjorde mig först oroad över att jag hade grejer igång i bakgrunden, men sedan när jag bantat bort allt så insåg jag att den faktiskt alltid är igång!
Man kan ju hoppas att garbage collectorn kommer och rensar upp här efter ett tag och att minnet dumpas. Kan någon som vet hur Flash fungerar på så låg nivå förklara hur detta beter sig? :) hade i så fall varit intressant att höra!
Jag tänker mig att det är renderingen av scenen som skapar detta och det verkar som att ett nytt TimerEvent skapas vid varje frame. Dvs att om man kör i 30 fps som jag oftast gör så kommer man att ha 30 nya TimerEvents varje sekund. Om då varje TimerEvent väger säg 10 bytes så får man alltså:
1 sek: 300 bytes
1 minut: 17,5 kb
10 minuter: 175 kb
1 h: 1 mb
Känns rätt onödigt, speciellt om inget i själva verket uppdateras... In Garbage Collector I trust (hoppas!)















