Copy link to clipboard
Copied
Any suggestions for a tool to investigate memory leaks? If none available, is there some AS3 API that would list objects larger than certain size in memory? Thanks!
Copy link to clipboard
Copied
You can try Adobe Scout for profiling, or profile within your own the code with Sampler package (AS3 API)
Copy link to clipboard
Copied
>> You can try Adobe Scout for profiling, or profile within your own the code with Sampler package (AS3 API)
I tried Scout and it seems to show only the total memory allocation, which doesn't help much. Perhaps I missed something. Can Scout actually show objects in memory?
Copy link to clipboard
Copied
if you compile your swf with telemetry enabled (don't remember the exact name of the option atm, sorry), scout can show you every object allocation in your swf, from the time you press scout's record button on.
Copy link to clipboard
Copied
It's called "Enable detailed telemetry" and I have it on.
I has able to download Scout 1.1.3.354121. Don't think it's the latest version though. I don't see any way to see object allocation.
Copy link to clipboard
Copied
I don't think object allocation is included in Scout, correct me if I'm wrong. I am always using the memory sampler in FlashDevelop to identify memory leaks.
Copy link to clipboard
Copied
If you're using Animate you can also mark "Generate size report" in Publish Settings. But as IGZN mentions Adobe Scout is great for profiling your code.
Copy link to clipboard
Copied
FDT and FlashDevelop both have a memory sampler that will help you identify memory leaks. I don't know about other IDEs but maybe there are also some alternatives in FlashBuilder or IntelliJ.
Copy link to clipboard
Copied
I was able to detect memory leaks with FlashDevelop SWF Profiler in other projects, but this one uses flash.data.SQLConnection and other DB-related packages. They seems to confuse FlashDevelop debugger, so it just hangs.
Copy link to clipboard
Copied
Here's a good read about Scout basics:
Getting started with Adobe Scout | Adobe Developer Connection
Note the links at the bottom.
This one is about profiling memory, it's in French, but Chrome's built-in translator does an okay job if you need it in English:
Profiling de la mémoire avec Adobe Scout | Adobe Developer Connection
FlashDevelop is also great as rewb0rn​ mentioned.
Copy link to clipboard
Copied
Thanks for the article and the translation advice My mistake was not selecting multiple frames. Still, I find Scout to be not very useful for memory leak detection. In fact, I have not been able to find one single step-by-step tutorial on that topic where it's shown how to detect a memory leak. Too bad they stopped working on Scout. Could have been a really cool tool.
Copy link to clipboard
Copied
if you can not search yourself for about 2 seconds on google and/or Adobe Developer Connection
terms like "Adobe Scout Tutorials", "Adobe Scout memory profiling", etc.
I'm not sure who will be able to do that for you
Scout is the most advanced profiler you will get for Flash and AIR
it's there, it's free, nothing is missing, you just have to learn it
Copy link to clipboard
Copied
I agree that Scout is an amazingly advanced profiler, no question about that. However.
"Adobe Scout memory profiling" is not the same as "Adobe Scout memory leak source detection".
In the message that you are referring to I wrote:
"I have not been able to find one single step-by-step tutorial on that topic where it's shown how to detect a memory leak."
If you have a link to such a tutorial (using Scout to detect a source of an actual memory leak), please post it here.
Copy link to clipboard
Copied
I'm not sure there's any tool out there that can automatically detect a memory leak. The definition of what counts as a "memory leak" or not for your particular app depends a lot on the situation, the expected memory usage of your app, etc. Basically if you're seeing memory usage spiral out of control past what you think your app should be using, that's possibly a memory leak.
Copy link to clipboard
Copied
What I would prefer is a simple memory snapshot (a list of objects with memory allocated for each object), just like in FlashDevelop.
I'm not a Scout expert by any stretch of imagination, so I'm probably missing something. In that case, please be kind and explain what it is. It seems that Scout is using allocation/deallocation events. It can tell you which objects were allocated/deallocated in a particular frame range. So yes, there's enough information to deduce a memory snapshot for a given frame. However, I don't see where in Scout this information is presented in an easily digestible form.
Copy link to clipboard
Copied
I'm sorry, I haven't used FlashDevelop's memory profiler, only Scout. I may not be much help.
Copy link to clipboard
Copied
There's only one known tool for detecting memory leaks and it's called a human brain. It's not a joke or a cheap shot, that's the reality with any technology, there are no tools (maybe in the future with advanced AI?) that can decide that a memory leak is going on (step 1) and what's causing it (step 2).
Scout does present everything and that's a lot of information but you can make Scout present only what's of interest to you. It's just the best profiler for AIR technology right now and that makes it by definition the best tool for resolving memory leaks. Learn to use it and learn to use it for resolving memory leaks (I'm sure you'll find tutorial out there)
Copy link to clipboard
Copied
"I find Scout to be not very useful for memory leak detection" A tool that can show you the amount of memory requested and used by every single object in your app in real time and record all this in a frame by frame manner is not useful for memory leak detection?After such a statement one can wonder if your problem really comes from a lack of tool ....