C++ High Performance. Cómputo de alto rendimiento en C++
538 páginas
Spanish
PDF
4.5

C++ High Performance. Cómputo de alto rendimiento en C++

C++ High Performance. Cómputo de alto rendimiento en C++

Autor:

Año:

Resumen:

Introducción

El libro C++ High Performance (autores: Björn Andrist, Viktor Sehr, año 2020, 538 páginas) no es un manual más de sintaxis del lenguaje, sino una inmersión profunda en el arte de escribir código rápido y eficiente en C++. En un mundo donde el rendimiento suele ser un requisito crítico (videojuegos, servidores de alta carga, sistemas financieros, dispositivos embebidos), la habilidad no solo de escribir código que funcione, sino de hacerlo lo más rápido posible, se convierte en una competencia clave. Este libro ofrece un enfoque sistemático para la optimización, desde la arquitectura de la aplicación hasta trucos de bajo nivel con el procesador.

¿De qué trata este libro?

El libro está dividido en tres partes lógicas que guían al lector de manera secuencial desde los principios generales hasta las técnicas específicas.

Parte 1: Fundamentos del rendimiento

Los autores comienzan con conceptos fundamentales: qué es el rendimiento, cómo medirlo, qué tipos de cuellos de botella existen. Aquí se tratan:

  • Perfilado y evaluación comparativa (herramientas: perf, Valgrind, Google Benchmark).
  • Influencia de la arquitectura del procesador (pipeline, caché, predicción de saltos).
  • Optimización de memoria (localidad de datos, alineación, pools).

Parte 2: Técnicas avanzadas de C++

La segunda parte está dedicada al uso de las capacidades modernas de C++ para mejorar el rendimiento:

  • Semántica de movimiento y reenvío perfecto (perfect forwarding).
  • Cálculos en tiempo de compilación (constexpr, plantillas).
  • Polimorfismo sin funciones virtuales (CRTP, std::variant, std::any).
  • Punteros inteligentes y gestión de recursos.

Parte 3: Multiproceso y paralelismo

La parte final es la más extensa y práctica. Abarca:

  • Modelos de memoria de C++ y operaciones atómicas.
  • Hilos, mutex, conditional_variable.
  • Algoritmos paralelos (std::execution::par).
  • Instrucciones SIMD (SSE, AVX) y su uso mediante intrínsecos.
  • Programación asíncrona (std::future, std::async).

¿Para quién es este libro?

El libro está dirigido a desarrolladores experimentados de C++ que ya escriben con soltura en el lenguaje, pero desean llevar sus habilidades al siguiente nivel. Será útil para:

  • Desarrolladores de videojuegos y motores gráficos.
  • Ingenieros que trabajan en servidores de alta carga.
  • Especialistas en sistemas embebidos.
  • Todos aquellos que quieran entender cómo funciona el C++ moderno "bajo el capó".

¿Qué aprenderá el lector?

Después de la lectura, podrá:

  • Elegir correctamente las herramientas de perfilado e interpretar sus resultados.
  • Optimizar el uso de la caché y la memoria.
  • Usar la semántica de movimiento y constexpr para acelerar el código.
  • Construir aplicaciones multiproceso eficientes sin condiciones de carrera ni interbloqueos.
  • Aplicar instrucciones SIMD para cálculos vectoriales.
  • Diseñar una arquitectura orientada al rendimiento desde el principio.

Puntos fuertes del libro

La principal virtud es su enfoque práctico. Cada técnica va acompañada de ejemplos de código reales y evaluaciones comparativas que muestran la mejora de rendimiento. Los autores no solo dicen "hagan esto", sino que explican por qué funciona, basándose en la arquitectura de los procesadores modernos. El libro está escrito en un lenguaje ameno, y los conceptos complejos (como el modelo de memoria de C++ o SIMD) se explican de forma muy clara.

Mención aparte merece la calidad de los ejemplos: no están fuera de contexto, sino que son miniproyectos completos que se pueden aplicar de inmediato en su trabajo.

¿A quién se lo recomiendo?

Recomiendo sin duda este libro a todos los que escriben en C++ y quieren que su código funcione lo más rápido posible. Si ya conoce la sintaxis, pero siente que ha llegado al límite del rendimiento, C++ High Performance será su trampolín. No es para principiantes, pero para aquellos que estén dispuestos a profundizar en el t

Recommendations