The BIG list:
Global Stats Profiler (Classic) Instanciation Profiler (Classic) Function Profiler (Classic) Permanent Search Filter (PRO) Internal Events Profiler (Unique) Loaders Profiler (Unique) Resources Grabber (PRO) DisplayList Profiler (Unique) Overdraw profiler (Unique) Mouse Listeners profiler (Unique) Custom User Events (PRO) Flash Console (PRO) Garbage Collector Triggering (Classic) Instanciation/Garbage "Raw Data Dump" (Unique, for PowerDevs!) Function Call listing "Raw Data Dump" (Unique, for PowerDevs!) Interlaced Sampling/Function Call listing "Raw Data Dump" (Unique, for PowerDevs!) Direct as3-code command for SWC embedding (Unique, for PowerDevs!) Continuous Profiling (Unique) Minimizable MonsterDebugger "Automated Connectivity" (Unique)
Global Stats ProfilerThe most basic, yet frequently used, type of profiler. This Profiler shows the frame per second (FPS): Target, Current, Min and Max. It also tracks memory usage: Current, Min and Max. A memory graph let you see the tooth created by memory-allocation. Finally, an image let you perceive in one quick look if there are color transformation or resize of the stage.
Instantiation ProfilerObject instantiation tracking is the base of any good profiler. Knowing what has been created, how much instances are alive and are collected is crucial. Even more in a system like Flash where performance strongly depends on the Garbage Collector. By targeting instances that are created the most, and removing as much as possible instances that are only use in one function can boost the performances a lot! This tool sort instantiation in different ways to facilitate the targeting. Like the other profilers of The Miner, you'll find on the screen only the most important data, but all the data can be save in a clipboard snapshot for finer debugging.
Function ProfilerTime required by a function to be processed is very important. By tracking functions that take the most time, you can identify very quickly bottlenecks and prioritize your optimizations. This profiler sorts the function by their self-time or by the total time with their sub-calls. Again, all the most important data is on the Top as it's being sorted. But the whole call list and times are available when doing a snapshot to clipboard.
Permanent Search Filter //Exclusive to PRO versionThe Memory Profiler, Performance Profiler, Loader Profiler and User Events can be trimmed down using search filters. These filters are available in all versions. Permanent filter (keeping filter across multiple launch) can be activated by PRO users in the configuration tab. For PRO users, this also trims the RAW DataDumps and keep only what have been entered in the filter boxes.
Internal Events ProfilerThere are multiple kinds of events triggered by Flash and the AVM. These events can impact the way your application behave. This profiler list most of the internal events, and draw a graph of how the time is being use in Flash. Internal Events include: [Verify], [Reap], [Mark], [Sweep], [EnterFrame], [Timers], [PreRender], [Render], [AVM1], [Mouse], [IO], [ExecutionQueue].
Loaders ProfilerEver wonder what file was being downloaded? What file succeed and what file didn't? Local or Remote, the Loaders Profiler will list all file being loaded with their size and http status. As the files are being loaded, a Progress Bar will be showed, and a color indicates what kind of loaders has been used to load it. It will also show the error when the file didn't load. And as for the other Profilers, only the most recent download are showed on screen, but you can do a snapshot to clipboard to get all file from the launch of the application.
Resources Grabber //Exclusive to PRO versionThe LoaderProfiler already gives the possibility to copy the URL of any file being loaded by a flash loader. This PRO feature gives you the possibility to jump directly to one of the resource that has been downloader (png, jpg, etc.). It can also grab SWF being loaded by the flash AVM, in the "ready to run state". This means SWF bytes can be saved unpacked, and decrypted. Obviously this can't do anything about obfuscation, but no type of encryption will block this from grabbing a SWF.
DisplayList ProfilerThe stage and display list management is heavy in flash. Even more when sprites and clip are constantly created and animation continuously playing. This profiler highlight all DisplayObject being added to stage, and indicate if the object is a new one (memory instantiation) or a re-used one (Pooling). The more pooling you have, the less memory variation you should get. The profiler also shows "GC pending objects": Objects that are still existing and playing, even if not referenced anymore and waiting for GC.
Overdraw profilerIf you are using the DisplayList a lot, you might be slowed down because of the management overhead of Flash. Having too much sprites, MovieClips is often not a good thing. This profilers Shows the amount of Overlapping DisplayObject, and reveal invisible (yet added to stage) DisplayObject (Useful when you have hidden buttons!). It also indicates the number of DO added and Removed from stage every seconds, and the current total number of DO on stage.
Mouse Listeners profilerThe main goal of this profiler is to reveal all the Sprites that have Mouse Event Listeners bind to them. All Sprites that can be clicked, triggered or are listening for MouseOver and other events will be highlighted. You can also see hidden buttons, or part of the application that just wait for a click to open something. The profiler also shows Sprite that are "mouseEnabled" but don't have listeners, hence might slow down your app for nothing.
Custom User Events //Exclusive to PRO versionThis tool helps developer to log custom events directly inside TheMiner. An event is defined by multiple field containe in the UserEventEntry class. You can assign name and value, but also priority, progress bars and updatable properties to control perfectly what you trigger. This tool is very useful to keep track of what's going on in your application in a very clean and simple interface. Like the other profilers, you can use search filters and do data snapshot to clipboard.
FLash Console //Exclusive to PRO versionFrom simple log to complex object inspection with internal links, FlashConsole is an Open-Source tool that logs everything in a very efficient way. You can inspect object properties, modify properties value, and show DisplayList structure on screen. The integration made in TheMiner is only a sub-set of the whole tool, keeping it to its most useful features, logging and inspecting. This profiler is only useful when integration is made with TheMiner SWC file. Using Call such as TheMiner.Log("text", "Channel") or TheMiner.InspectObject(aObj, "Channel") will print information in the Console Tab.
Garbage Collector TriggeringIt could not get simpler. By clicking on the little trash can, it forces a synchronous Garbage Collection.
Instantiation/Garbage "Raw Data Dump"As opposed to the "instantiation Profiler", this profiler does not show anything on screen. Instead, it record of a given amount of time a all samples processed by the AVM. Then, save it as a "nearly-raw" list in the Clipboard. You can then process it the way you want in a grid editor such as Excel for an ever-finer profiling.
With PRO version, from MemoryProfiler and PerformanceProfiler you can filter RAW content with Permanent Search Filters