Best Practices for Investigating Performance Problems (Windows Embedded CE 6.0)

1/5/2010

For an excellent general guideline about analyzing performance problems, see this Microsoft Web site.

When you investigate a performance problem, you should follow the same general guidelines as testing a debugging of any kind:

  • Define clear expectations.
  • Isolate the problem.
  • Establish an environment in which you can repeatedly reproduce the problem.

In the Platform Builder environment, it is also important that you ensure the Platform Builder tools are working with correct information about compilation symbols.

  • Ensure that you have specified the correct symbol path for your executable files.
  • Verify that the time stamp for each .map file in the release directory matches the corresponding executable file. If the time stamps do not match, rebuild the executable file and then build a new run-time image that supports the profiler that you intend to use. For information about building a run-time image that supports the kernel profiler, see Building a Run-Time Image That Supports the Kernel Profiler.

Phases of Performance Tuning

The following list shows the four phases of performance tuning in the Platform Builder environment. Repeat these steps until you achieve the goals that you set out.

  1. Collect information.
  2. Analyze the information.
    • First, analyze the information by using the kernel profiler to determine which code is running the most. For more information, see Kernel Profiler.
    • Next, analyze the information by using CeLog event tracking to get more information, such as DLL loads, process creation, and thread behavior. For more information, see CeLog Event Tracking.
  3. Configure a solution.
    • Implement one solution at a time.
    • Make optimizations based on the test data.
  4. Test the solution.
    • Check the correctness and performance of the test itself.
    • Make measurements, don't guess.
    • Make sure that all test results can be reproduced.
    • Document the changes and results.

See Also

Reference

Performance Tools for Networked Media Devices

Concepts

Debugging and Testing a Networked Media Device