AMD Logo AMD Developer Central

AMD CodeAnalyst Performance Analyzer
Skip Navigation LinksHome > CPU Tools > AMD CodeAnalyst Performance Analyzer

Overview
AMD CodeAnalyst Performance Analyzer is a suite of powerful tools that analyze software performance on AMD microprocessors and help developers optimize application performance. It uses a profiling technique to identify performance areas and issues within the system. Using this suite of tools, developers can get visibility into overall system performance, and can navigate into different modules and functions to locate hotspots within the target application.

CodeAnalyst allows you to profile applications using various performance events available on different AMD processors. You can specify performance events to target various functional units of the processor, or profiling granularity to adjust the accuracy of the result.

Please send feedback and questions to: CodeAnalyst Support.

  • » Join our online community of users in the AMD CodeAnalyst Forums
  • » Check out the “Introduction to CodeAnalyst” video


  • » Features
  • » Documentation
  • » Windows Downloads
  • » Linux Downloads
  • Features
    AMD CodeAnalyst Performance Analyzer is available for both Microsoft Windows and Linux platforms. Supported platforms are:
    • Microsoft® Windows XP®, Windows® 2003, Windows® Server 2003, Windows® Server 2008, and Vista® distribution on x86 and AMD64 architectures
    • 32-bit and 64-bit Linux distributions based around the 2.4 or 2.6 kernel series on x86 architecture

    The profiler includes a Graphical User Interface for ease of use, but is also offered as a command line utility to facilitate use in batch files.

     Key features:

    • System-Wide Profiling : CodeAnalyst is designed to profile the performance of binary modules, including user mode application modules and kernel mode driver modules. Timer-Based Profiling and Event-Based Profiling collect data from multiple processors in a multi-processor system.
    • Timer-Based Profiling (TBP) :
      • The application to be optimized is run at full speed on the system that is running CodeAnalyst. EIP samples are collected at predetermined intervals and can be used to identify possible bottlenecks, execution penalties, or optimization opportunities.
      • On APIC enabled systems, the finest time resolution is 0.1ms and 1.0ms non-APIC enabled systems.
    • Event-Based Profiling (EBP) : CodeAnalyst EBP is designed to profile the hardware performance events on AMD Athlon™, AMD Athlon™ XP, AMD Opteron™, AMD Athlon™ 64, AMD "Barcelona" (AMD Family 10h), and AMD Turion™ X2 Ultra (AMD Family 11h). With event multiplexing technique, CodeAnalyst EBP is able to profile more than 4 events simultaneously.
    • Instruction-Based Sampling (IBS) : Instruction-based Sampling is a new performance measurement technique supported by AMD Barcelona (Family 10h) processors. IBS has these advantages:
      • IBS precisely associates hardware event information with the instructions that cause the events. A data cache miss, for example, is associated with the AMD64 instruction performing the memory read or write operation that caused the miss.
      • IBS collects a wide range of hardware event information in a single measurement run.
      • IBS collects new information such as retire delay and data cache miss latency.
    • Call Stack Sampling (CSS) : Combining with TBP or EBP, Call Stack Sampling is able to collect data on caller-callee relationship on the hotspots.
    • Thread Profile : CodeAnalyst thread profiling views show the thread chart and non-local memory access.
    • Post Process : CodeAnalyst shows sample distribution without module debug information.
      • Interpret performance measurements rather than display raw performance data
      • Flexible view configuration and management

    New features in CodeAnalyst v2.94 for Windows

    • Supports the Six-Core AMD Opteron™ processor all earlier processors.
    • Multiple simultaneous symbol servers.
    • Process filters: You can limit the reported data to certain processes.
    • API: Custom tools can be built using the API to control profiling and to analyze profile data. This feature opens new ways to work with and build on CodeAnalyst.
    • Notes: A customized note can be added to each profile session to track essential details about a session and reduce the length of session names.
      Call stack data for running process:  Call Stack information can be captured about a process using the command line tool.

    New features in CodeAnalyst v2.80 for Windows

    • Supports new performance monitoring events provided by the newest addition to our processor line up, the AMD Turion™ X2 Ultra (AMD Family 11h) processors
    • Windows developers get additional convenience because this version is fully integrated into the Microsoft® Visual Studio 2008 environment.  AMD CodeAnalyst is invoked directly through Visual Studio, so profile data from aMD CodeAnalyst is visible as a tab in Visual Studio.  Instead of having to switch back and forth between Visual Studio and a separate AMD CodeAnalyst application, developers can modify, compile and profile code, examine the profile data, and go back to make further modifications, all within the same environment.
    • Process filtering and core affinity control for targeted process

    New features in CodeAnalyst v2.76 for Windows

    • Supports new performance monitoring events provided by AMD "Barcelona" (AMD Family 10h) processors
    • Supports Instruction-Based Sampling (IBS), a new technique on AMD "Barcelona" (AMD Family 10h), to provide precise performance analysis
    • Command line utilities for profile and post process
    • Support profiling without administrator privilege

    Enhanced features in CodeAnalyst v2.76 for Windows

    • Performance event counter multiplexing which supports profiling more than four performance events in a single sampling session
    • Call stack sampling to show caller-callee relationships for hotspots
    • Computation of performance measurements from sample data
    • A new "Express Mode" scheme to help new users get started quickly with CodeAnalyst
    • Predefined and user-defined configurations to control data collection
    • Predefined and user-defined views for flexible display of performance data in graphic post process
    • Microsoft® .NET profile support
    • Profile-control API library
    • Profiling on AMD's multi-core systems
    • Thread analysis capability
    • Processes tab showing analysis by processes for each profile for single or multiple processors
    • The Project Options dialog box tabs now include a Toolbars tab. This tab can be used to show or hide available toolbars including "Show Bookmarks toolbar" to set bookmarks for searching for next symbol, line with sample data, or next section.
    • Toggle icon on system data and system graph views that toggle between PID and .DLL files
    • Sort columns on the Processes tab in ascending or descending order
    • Code density chart displayed in source/disassembly view
    • Microsoft Visual Studio 2005 profile Plug-in which allows user to profile their application inside Visual Studio and view results in CodeAnalyst
    • Enhanced source display for easy configuration of pipeline simulation
      General Documentation
      Downloads
      CodeAnalyst Demo
      View this short "Introduction to CodeAnalyst" video given by AMD’s very own Paul Drongowski, a member of the AMD CodeAnalyst team.
      » Watch it now

      CodeAnalyst Partners with Microsoft® Visual Studio®
      Newest CodeAnalyst supports the latest processor events plus it integrates directly into Microsoft® Visual Studio®!
      »Download it now 
      Instruction-Based Sampling (IBS): A New Performance Analysis Technique

      Instruction-Based Sampling (IBS) is a new profiling technique that provides rich, precise program performance information. IBS is introduced by AMD Family10h processors to overcome the limitations of conventional performance counter sampling.

      »Download Article (pdf)
      CodeAnalyst Forum
      » L2 and L3 cache hit/miss measurements
      Friday, October 30, 2009
      » memory accesses question
      Friday, October 30, 2009
      » Perfmon2 on AMD64 running RHEL5.3
      Sunday, October 25, 2009
      » A couple of instructions take 15000 cycles?
      Thursday, October 22, 2009
      » codeanalyst from opensuse 11.1 contrib
      Tuesday, October 20, 2009
      » See More