ActionScript 3.0 :: Identify Memory Leakage - Garbage Collector?
Jul 3, 2011
I've coded a 2000 line game on one actions layer (facepalm*) and I just recently learned about the GC (garbage collector). I've looked around a bit and can't, how to trace the source of it. There is an interesting article that mentioned event listeners and for every addEventListener there should be a removeEventListener. My game has 60 adds and only 15. What I can't make sense is that the mc's that have the event listeners are never removed, but just moved off of the stage. Others are just made invisible. So if the event listener is added once, why would the memory keep growing? (I'm using the Windows Task Manager to monitor this). Another point was to remove objects so that the GC can do its work. What I did was create an object, add it to an array then null it.
_object1 = new _barrel();
_object1.x = objectPosition;
_object1.y = _defaultFloorBoundary.y;
instanceArray[objectNumber] = _object1;
_object1 = null;
Then removed the object from the array.
for ( var ii:int = 0; ii<instanceArray.length - 1; ii++ ) {
stage.removeChild(instanceArray[ii]);
delete(instanceArray[ii]);
instanceArray[ii] = null;
}
View 1 Replies
Similar Posts:
Sep 23, 2010
fully removing objects from memory, but I still think I'm not getting it. I've written a test script that looks the following:The stage has is of class MemTest
Code:
package
{
import flash.display.*
import flash.events.*
[code]...
There is approximately a 3x difference in the rate of gain of memory usage between simply letting the movieclips accumulate or running removeChildforever() in the enterframe. There doesn't seem to be a difference between using the "killme = null;" line or not.However, I am still seeing an constant rate of increase in memory usage of about 3 megs over the course of a minute, running at 120 fps. why is the memory usage still going up? Is garbage collector run so infrequently that it hasn't happened after 7200 frames?
View 3 Replies
May 14, 2010
I have ship game that i create using falsh as3. but i have the problem with memory usage. the memory usage still increase when game played. whereas the System.gc was called, but the memory still increase.
View 1 Replies
Aug 28, 2008
I also facing the same memory problem.As you said in this case it works fine. But my case i am not loading images instead i load swf file which has sound embeded to the timeline as stream.
According to this code, same memory management performs well for me also. but the sound in the unloaded swf is still audible and when i load the next swf, these all sounds mix up and i don't hear anything properly.
To avoid the sound problem i added a line SoundMixer.stopAll() to getaway the problem, but after i added this line memory management got lost and my system gets hanged.
[Code]...
View 1 Replies
Dec 12, 2011
Would this cause memory leak ?
var mc:MovieClip ; //<<<<<<< OUTSIDE LOOP
for ( var i=0 ; i< 1000 ; i++)
{[code].....
"removeEventListener" is not used in any of the above code, so I think that both are causing a memory leak.
View 3 Replies
Sep 11, 2010
I am creating a bunch of movieclips when I first start the flash movie.I then put them into an array and use functions to add and remove them by selecting a random index in the array.When they are removed are they marked for garbage collection?Or can I just keep creating them.Might be hard to understand so code is below
var mc1:mov1 = new mov1();
var mc2:mov2 = mov2();
var mc3:mov3 = mov3();
var mc4:mov4 = mov4();
var theRandomClip:Number;
var movieClipArray = new Array(mc1,mc2,mc3,mc4)
function getRandom():void{
theRandomClip = Math.floor(Math.random()*movieClipArray.length);
addChild(movieClipArray[theRandomClip]);
}
function remove():void{
removeChild(theRandomClip);
}
//Then I would call them in succesion many times
getRandom();
remove();
getRandom();
remove();
//etc do I need to worry about them getting garbage collected and no
//longer being available?
Hope that makes sense
View 1 Replies
Aug 30, 2010
Here's my question. Suppose I've written some AS3 code like:
statementOne;
statementTwo;
Is there any possibility that the garbage collector will run during or between my two statements, or does it only run after my "user" code has finished and returned control up to flash? We have an A-Star codeblock that's sometimes slow, and I'd like to eliminate the GC as a potential culprit. The codeblock is obviously more complex than my example above, but it doesn't involve any events or other asynchronous stuff.
View 6 Replies
Nov 14, 2011
Lets say a scene started off around 70-80mb, it loaded a swf in, and by removing the event listener and setting objects to null and numbers to 0 before unloading the swf,and went back to the original scene, the memory stack up till like 80mb++, and every time I repeats the same process the memory goes up higher,is that normal? or its a memory leaking issue?
View 4 Replies
Aug 22, 2010
Looks like the garbage collector is not removing movieclips that have textfields set to TLF. I'm using Flash Builder's profile inspector and TLF brings in a bunch of objects and prevents the clip from being removed by the garbage collector (including all the objects that TLF put in memory). How could Adobe release CS5 with such a crappy implementation of text? If there is no solution I will have to avoid using TLF text for all my projects.
View 11 Replies
Feb 20, 2012
take a look at the following code
var a = new View();
a = null;
....
class View {
[Code]...
will a be in memory after a = null? Does addEventListener adds a strong refernce?
View 3 Replies
Mar 18, 2010
I'm forgetting now exactly how I should dispose of unneeded objects. In the past, every object/class I created had a public dispose() function which removes all added listeners inside it and called the kill/dispose function on any children of it that may need the same (so it worked its way down the tree, as this process can continue for as many children/grandchildren there are in the list). So basically, the code in the parent class would look like this:
Code:
childObj.removeEventListener(MouseEvent.MOUSE_DOWN, anotherHandler);
childObj.dispose();
childObj = null;
...and the childObj class would look like this:
[Code] .....
Do I need to set any variables/objects defined in the child class's class scope to null prior to setting the class itself to null? Or is this handled automatically when I set the class itself to null from the parent (assuming these class-scope-defined variables/objects have no listeners or child objects which need to be disposed themselves)?
View 4 Replies
Feb 9, 2011
i saw that my app after some time, it becomes slow.. so i guess i have a memory leak? How could i be sure about that and track it down?
View 2 Replies
Nov 7, 2008
I have done a lot of searching / reading to find out how to clear my memory. But I still can't really work out how to clear the memory, it just never seems to come down. I have a few MovieClips that contain other MovieClips with pngs inside them being added to the stage.
As fare as I can tell all Event listeners are removed and refrences I remove the clip, with removeChild I "null" the variable I am using the "LocalConnection()" hack to try and force a clean up, but no movement on the memory count. Are there any examples of a *.png being added and removed from the memory?
View 7 Replies
Feb 9, 2010
I am concerned about the garbage collection in my projects. Whatever dynamic memory i am allocating, never seems to free up and it just keeps adding (i check in Windows Task Manager). e.g. I am adding bricks (movie clip) this way:
[Code]...
View 6 Replies
Jul 19, 2010
In AS3, after I've removed a display object container B from another display object container A and deleted all the references to B in A, does that mean that all memories previously held in B will all be released too or do I have to manually delete all the references to objects in B before I can delete B in A in order to free all the memory space held?One more question. I was kind of confused of when to use the delete statement and when to set a variable to null.
View 1 Replies
May 4, 2011
This blog (and others) state that you should set object references to null inside your dispose() methods when cleaning up objects. However, Actionscript 3 (with Flash Player 9) uses mark and sweep to clear out circular references for you. So I am wondering: is there really any reason to null out your object references?
View 2 Replies
Jun 1, 2011
I want to know about the Object type specifically when it comes to garbage collection in Flash.
I know that items will be ready for garbage collection in situations like this:
[Code]...
View 2 Replies
Feb 9, 2010
What's necessary to do when removing an object to make sure there are no memory leaks? Do you have to remove all children? Or just remove all event listeners? Or both?
View 1 Replies
Sep 12, 2009
I can't seem to remove / unload the external swf files e.g when the carousel.swf (portfolio) is displayed and I press the about button the about content is overlapping the carousel (portfolio) . How can I remove / unload an external swf file from the main flash file and load a new swf file, while at the same time removing garbage collection from memory?
View 15 Replies
May 20, 2010
I've decided to move on to AS3 (and maybe AS4 in the future). I've done PHP object oriented programming and Java oriented as well, but Flash is a bit different because of actual visual things that occur.
I tried to follow a very simple tutorial. I made a "collector" MovieClip and added both the identifier "collector" and the class "collector" to it. I added the project class as "superClass".
In superClass.as I had the following lines of code:
ActionScript Code:
package {
import flash.display.MovieClip;
import flash.display.Sprite;
[Code]....
is to an undefined method. I don't really see how this could be, since I have the collector class.
View 1 Replies
Jan 31, 2012
I have a bit trouble with LoaderMax memory occupy, i have a queue, and i am keep loading images depend on user's action. if they click load more and it keep load, but i would like to clean the memory which been occupied by the previous queue (i have remove all the children been added by the loading previously). is there a way i can do it? the behavior like this.
[Code]...
View 1 Replies
Sep 26, 2010
I have an FPS monitor running and notice that I am getting choppiness here and there, bringing my game from 40 to 27 fps and back and forth at certain stages. I have an idea of where it is happening, but do not know for sure. I looked up quite a few memory monitors but haven't found anything decent yet. Is there a memory monitor that allows you to see the memory leaked and find its location? If not, how about just he memory leaked?
View 4 Replies
Aug 2, 2007
I'm making an isometric game and I need to know which takes less memory for scrolling, making everything invisible that you can't see? Like if(!this.base.hitTest(worldHitter))this._visible = false; Or would it be better to remove the movieclips unseen and then reattach them when i should see them?
View 2 Replies
Dec 15, 2009
Therefore, my concepts is I have webcam. My webcam is able to catch a image. Whereby, the flash will calculate the overall of the color. And it will resize and place it to the nearest color of the main background color.
View 2 Replies
May 18, 2009
I'm retrieving variables from a DB via PHP via the URLRequest, and the formatting is set to variables (URLLoaderDataFormat.VARIABLES) and matches the structure "myVarName=myValue&myOtherVarName=myOtherValue&... ".
My question is; is there a way, within Flash, to identify the variables and their values, without having to know their names?, are there methods within the loader class that allow this?, such as the variables count etc?
(I can access the variable "copyrightTxt." via the syntax: loader.data.copyrightTxt because I know its name, but I'd like something like
loader.data.variableSent[45].name = "copyrightTxt"
and
loader.data.variableSent[45].value = "@ 2009"
and
loader.data.variableCount = 98
View 3 Replies
Apr 6, 2009
I have the following:
function ShowSlide(event:TweenEvent) {
m= getChildByName("tag"+slideIndex+"_mc");
m.visible = false;
if (slideIndex < 4) {
slideIndex++;
[Code] ....
And I want to do for "tagInitW" the same thing I do for "m" being given that I already have "created tag1InitW", "tag1InitH", "tag2InitW", "tag2InitH..." So is there anyway I can dynamically target a variable? This was easy in AS2, but because of the strict dataType the vars have in AS3, I can't do it like I was doing it in AS2.
View 4 Replies
Sep 23, 2009
I'm writing a graphics-intensive game in Flash CS3 / ActionScript 3. Is there any code profiler I can use to identify bottlenecks in the code?
View 4 Replies
Oct 30, 2009
in ActionScript 3, if I loop through the children of a movie clip, it will return a DisplayObjectContainer, which is a list of DisplayObjects. However, the AS3 typeof cannot identify MovieClip as MovieClip is now an object, instead of a data type. How can I correctly identify MovieClip?I found 3 solutions online: First set the MovieClip name to a specific name, then in the iterate process, check the name of children using child.name.indexOf("specificName") > -1
Solution 2:use child.hasOwnProperty("numChildren") to identify a MovieClip
Solution 3: use 3rd party plug-in like FlashDevelop
View 2 Replies
Mar 17, 2010
I am creating a lot of dynamic flex components like RadioButton, Combo Box, CheckBox.
[Code]....
When i click on Submit finally i need to get all the selected Values in each question. All the components are dynamically created at runtime.
View 1 Replies
Jun 23, 2010
How do we identify the user's web browser in flex ? Based on the browser I have to display some text in my flex application.
View 3 Replies