The Adobe Flex profiler helps you identify performance bottlenecks and memory leaks in your applications. You launch it from within Adobe Flex Builder, and as you interact with your application, the profiler records data about the state of the application, including the number of objects, the size of those objects, the number of method calls, and the time spent in those method calls.
Profiling an application can help you understand the following about your application:
You should not look at profiling as only a single, discrete step in the process of developing an application. Rather, profiling should be an integral part of each step of application development. If possible, you should profile an application early and often during application development so that you can quickly identify problem areas. Profiling is an iterative process, and you gain the most benefit by profiling as often as possible.
Before you use the profiler, you should decide what kind of profiling you are going to do: performance profiling or memory profiling.
Performance profiling is the process of looking for methods in your application that run slowly and can be improved. Once identified, these hot spots can be optimized to speed up execution times so that your application runs faster and responds more quickly to user interaction. You generally look for two things when doing performance profiling: a method that is called only once but takes more time to run than similar methods, or a method that may not take much time to run but is called many times. You use the performance profiling data to identify the methods that you then optimize. You might find that reducing the number of calls to a method is more effective than refactoring the code within the method.
Memory profiling is the process of examining how much memory each object or type of object is using in the application. You use the memory profiling data in several ways: to see if there are objects that are larger than necessary, to see if there are too many objects of a single type, and to identify objects that are not garbage collected (memory leaks). By using the memory profiling data, you can try to reduce the size of objects, reduce the number of objects that are created, or allow objects to be garbage collected by removing references to them.
Memory profiling can slow performance of your application because it uses much more memory than performance profiling. You should only do memory profiling when necessary.
You often do both performance profiling and memory profiling to locate the source of performance problems. You use performance profiling to identify the methods that result in excessive memory allocation and long execution times. Then, you use memory profiling to identify the memory leaks in those methods.
When you know what kind of profiling you are going to do, you can start the profiler.
The profiler alone does not improve the size, speed, and perceived performance of your application. After you use the profiler to identify the problem methods and classes, look at the following resources in the Flex documentation for help in improving your application: