AMD CodeAnalyst
# AMD CodeAnalyst

AMD CodeAnalyst es un generador de perfiles de código basado en GUI para máquinas basadas en x86 y x86-64. CodeAnalyst tiene una apariencia similar en las plataformas Linux y Microsoft Windows. CodeAnalyst utiliza técnicas de creación de perfiles de hardware específicas que están diseñadas para funcionar con procesadores AMD, así como una técnica de creación de perfiles basada en temporizadores que no requiere soporte de hardware específico; esto permite que un subconjunto de funciones de creación de perfiles funcione en procesadores que no sean AMD, como los procesadores Intel.

A partir de marzo de 2013, CodeAnalyst ha sido reemplazado por AMD CodeXL.

## Optimización de código

CodeAnalyst se basa en OProfile para la plataforma Linux y está disponible como descarga gratuita. La GUI ayuda en varios tipos de perfiles de código, incluidos los perfiles basados en el tiempo, los perfiles basados en eventos de hardware, los perfiles basados en instrucciones y otros. Esto produce estadísticas sobre detalles tales como el tiempo empleado en cada subrutina que se puede profundizar hasta el código fuente o el nivel de instrucción. El tiempo que tardan las instrucciones puede ser indicativo de bloqueos en la canalización durante la ejecución de la instrucción. La optimización podría ser tan simple como reordenar las instrucciones para la máxima utilización de una caché de línea de datos o alterar/eliminar las ramas y bucles para que se utilice el número máximo de unidades de ejecución (unidades de carga/almacenamiento, ALU, unidad de ejecución FP ...) en paralelo.

Se agregó soporte para PERF en CodeAnalyst 3.4, lo que permite a los usuarios elegir entre OProfile y PERF como el backend de creación de perfiles.

## Instruction-Based Sampling

CodeAnalyst es compatible con IBS (Instruction-Based Sampling) que se introdujo en la familia de procesadores AMD 10h (Barcelona). Con la compatibilidad con IBS, CodeAnalyst puede identificar con mayor precisión las instrucciones que provocan bloqueos de canalización y errores de caché.

## Código abierto

La versión Linux de CodeAnalyst está disponible bajo GNU General Public License 2.0.

CodeAnalyst también utiliza otros componentes de código abierto, incluido el marco Qt, libdwarf, libelf y la biblioteca Binary File Descriptor.

