En informática , el rendimiento de un ordenador se refiere a la cantidad de trabajo útil que realiza un sistema informático . Fuera de contextos específicos, el rendimiento se estima en términos de precisión, eficiencia y velocidad de ejecución de las instrucciones de los programas . Para lograr un alto rendimiento informático, pueden intervenir uno o más de los siguientes factores:
- Tiempo de respuesta breve para una tarea determinada.
- Alto rendimiento (velocidad de procesamiento de tareas).
- Baja utilización de los recursos informáticos .
- Compresión y descompresión de datos rápida (o altamente compacta) .
- Alta disponibilidad del sistema informático o de la aplicación.
- Alto ancho de banda .
- Tiempo de transmisión de datos corto .
Definiciones técnicas y no técnicas
El rendimiento de cualquier sistema informático puede evaluarse en términos técnicos y medibles, utilizando una o más de las métricas enumeradas anteriormente. De esta manera, el rendimiento puede ser
- Comparado con otros sistemas o con el mismo sistema antes/después de los cambios.
- En términos absolutos, por ejemplo, para cumplir una obligación contractual.
Si bien la definición anterior se refiere a un enfoque científico y técnico, la siguiente definición proporcionada por Arnold Allen sería útil para un público no técnico:
La palabra rendimiento en rendimiento informático significa lo mismo que rendimiento en otros contextos, es decir, significa "¿Qué tan bien está haciendo la computadora el trabajo que se supone que debe hacer?" [ 1 ]
Como un aspecto de la calidad del software
El rendimiento del software informático , en particular el tiempo de respuesta de las aplicaciones de software , es un aspecto de la calidad del software que es importante en las interacciones entre humanos y ordenadores .
Ingeniería de rendimiento
La ingeniería de rendimiento dentro de la ingeniería de sistemas abarca el conjunto de roles, habilidades, actividades, prácticas, herramientas y entregables que se aplican en cada fase del ciclo de vida del desarrollo de sistemas y que garantizan que una solución se diseñe, implemente y reciba soporte operativo para cumplir con los requisitos de rendimiento definidos para la solución.
La ingeniería de rendimiento se ocupa constantemente de encontrar un equilibrio entre los diferentes tipos de rendimiento. En ocasiones, un diseñador de CPU puede encontrar la manera de crear una CPU con un mejor rendimiento general mejorando uno de los aspectos del rendimiento que se presentan a continuación, sin sacrificar el rendimiento de la CPU en otras áreas. Por ejemplo, construyendo la CPU con transistores mejores y más rápidos .
Sin embargo, a veces llevar un tipo de rendimiento al extremo conlleva un rendimiento general de la CPU inferior, porque se sacrificaron otros aspectos importantes para obtener una cifra que parece impresionante, por ejemplo, la frecuencia de reloj del chip (véase el mito de los megahercios ).
Ingeniería de rendimiento de aplicaciones
La ingeniería de rendimiento de aplicaciones (APE, por sus siglas en inglés) es una metodología específica dentro de la ingeniería de rendimiento, diseñada para afrontar los desafíos relacionados con el rendimiento de las aplicaciones en entornos de TI móviles, en la nube y terrestres cada vez más distribuidos. Incluye las funciones, habilidades, actividades, prácticas, herramientas y entregables que se aplican en cada fase del ciclo de vida de la aplicación para garantizar que esta se diseñe, implemente y reciba soporte operativo para cumplir con los requisitos de rendimiento no funcionales.
Aspectos del desempeño
Las métricas de rendimiento informático (elementos a medir) incluyen disponibilidad , tiempo de respuesta , capacidad del canal , latencia , tiempo de finalización , tiempo de servicio , ancho de banda , rendimiento , eficiencia relativa , escalabilidad , rendimiento por vatio , relación de compresión , longitud de la ruta de instrucción y aceleración . Hay disponibles pruebas de rendimiento de la CPU . [ 2 ]
Disponibilidad
La disponibilidad de un sistema se suele medir en función de su fiabilidad. A medida que aumenta la fiabilidad, también aumenta la disponibilidad (es decir, se reduce el tiempo de inactividad ). La disponibilidad de un sistema también puede incrementarse mediante la estrategia de priorizar la capacidad de prueba y el mantenimiento, en lugar de la fiabilidad. Mejorar el mantenimiento suele ser más sencillo que mejorar la fiabilidad. Las estimaciones de mantenimiento (tasas de reparación) también suelen ser más precisas. Sin embargo, dado que las incertidumbres en las estimaciones de fiabilidad son, en la mayoría de los casos, muy grandes, es probable que predominen sobre el problema de la disponibilidad (incertidumbre de predicción), incluso cuando los niveles de mantenimiento son muy altos.
Tiempo de respuesta
El tiempo de respuesta es el tiempo total que se tarda en responder a una solicitud de servicio. En informática, ese servicio puede ser cualquier unidad de trabajo, desde una simple E/S de disco hasta la carga de una página web compleja . El tiempo de respuesta es la suma de tres números: [ 3 ]
- Tiempo de servicio: cuánto tiempo se tarda en realizar el trabajo solicitado.
- Tiempo de espera: cuánto tiempo tiene que esperar la solicitud a que haya otras solicitudes en cola antes de poder ejecutarse.
- Tiempo de transmisión: El tiempo que tarda en enviarse la solicitud al ordenador que realiza el trabajo y la respuesta de vuelta al solicitante.
Velocidad de procesamiento
La mayoría de los consumidores eligen una arquitectura de computadora (normalmente la arquitectura Intel IA-32 ) para poder ejecutar una gran cantidad de software preexistente y precompilado. Al no estar muy informados sobre las pruebas de rendimiento de las computadoras, algunos eligen una CPU en particular basándose en la frecuencia de funcionamiento (véase el mito de los megahercios ).
Algunos diseñadores de sistemas que construyen ordenadores paralelos eligen las CPU en función de la velocidad por dólar.
Capacidad del canal
La capacidad del canal es el límite superior más estricto de la tasa de información que se puede transmitir de forma fiable a través de un canal de comunicaciones . Según el teorema de codificación de canal ruidoso , la capacidad de un canal dado es la tasa de información límite (en unidades de información por unidad de tiempo) que se puede lograr con una probabilidad de error arbitrariamente pequeña. [ 4 ] [ 5 ]
La teoría de la información , desarrollada por Claude E. Shannon durante la Segunda Guerra Mundial , define la noción de capacidad de canal y proporciona un modelo matemático para calcularla. El resultado clave establece que la capacidad del canal, tal como se definió anteriormente, viene dada por el máximo de la información mutua entre la entrada y la salida del canal, donde la maximización se realiza con respecto a la distribución de entrada. [ 6 ]
Estado latente
La latencia es un retardo temporal entre la causa y el efecto de un cambio físico en el sistema observado. Esta latencia se debe a la velocidad limitada con la que puede producirse cualquier interacción física. Dicha velocidad siempre es inferior o igual a la velocidad de la luz. Por lo tanto, todo sistema físico con dimensiones espaciales distintas de cero experimentará algún tipo de latencia.
La definición precisa de latencia depende del sistema observado y de la naturaleza de la estimulación. En comunicaciones, el límite inferior de latencia viene determinado por el medio utilizado. En sistemas de comunicación bidireccional fiables, la latencia limita la velocidad máxima de transmisión de información, ya que suele haber un límite en la cantidad de información que se transmite simultáneamente. En el ámbito de la interacción persona-máquina, la latencia perceptible (el retraso entre la orden del usuario y la respuesta del ordenador) influye notablemente en la satisfacción del usuario y la usabilidad.
Las computadoras ejecutan conjuntos de instrucciones llamados procesos. En los sistemas operativos, la ejecución de un proceso puede posponerse si otros procesos también se están ejecutando. Además, el sistema operativo puede programar cuándo realizar la acción que ordena el proceso. Por ejemplo, supongamos que un proceso ordena que la salida de voltaje de una tarjeta de computadora cambie de alto a bajo, de alto a bajo, y así sucesivamente a una frecuencia de 1000 Hz. El sistema operativo puede ajustar la programación de cada transición (de alto a bajo o de bajo a alto) según un reloj interno. La latencia es el retraso entre la instrucción del proceso que ordena la transición y el momento en que el hardware realiza la transición de voltaje de alto a bajo o de bajo a alto.
Los diseñadores de sistemas que crean sistemas informáticos en tiempo real buscan garantizar una respuesta en el peor de los casos. Esto resulta más sencillo cuando la CPU tiene una baja latencia de interrupción y una respuesta determinista.
Ancho de banda
En redes informáticas, el ancho de banda es una medida de la tasa de bits de los recursos de comunicación de datos disponibles o consumidos , expresada en bits por segundo o múltiplos de este (bit/s, kbit/s, Mbit/s, Gbit/s, etc.).
El ancho de banda define a veces la tasa de bits neta (también conocida como tasa de bits pico, tasa de información o tasa de bits útil de la capa física), la capacidad del canal o el rendimiento máximo de una ruta de comunicación lógica o física en un sistema de comunicación digital. Por ejemplo, las pruebas de ancho de banda miden el rendimiento máximo de una red informática. Esto se debe a que, según la ley de Hartley, la tasa de datos máxima de un enlace de comunicación físico es proporcional a su ancho de banda en hercios, que a veces se denomina ancho de banda de frecuencia, ancho de banda espectral, ancho de banda de RF, ancho de banda de señal o ancho de banda analógico.
Rendimiento
En términos generales, el rendimiento es la tasa de producción o la velocidad a la que se puede procesar algo.
En las redes de comunicación, el rendimiento es esencialmente sinónimo de consumo de ancho de banda digital. En las redes inalámbricas o de comunicación celular , la eficiencia espectral del sistema, expresada en bits/s/Hz/unidad de área, bits/s/Hz/sitio o bits/s/Hz/celda, es el rendimiento máximo del sistema (rendimiento agregado) dividido por el ancho de banda analógico y alguna medida del área de cobertura del sistema.
En los circuitos integrados, un bloque en un diagrama de flujo de datos suele tener una única entrada y una única salida, y opera con paquetes de información discretos. Ejemplos de estos bloques son los módulos FFT o los multiplicadores binarios . Dado que las unidades de rendimiento son el recíproco de la unidad de retardo de propagación , que se expresa en segundos por mensaje o segundos por salida, el rendimiento puede utilizarse para relacionar un dispositivo computacional que realiza una función específica, como un ASIC o un procesador embebido , con un canal de comunicación, simplificando así el análisis del sistema.
Escalabilidad
La escalabilidad es la capacidad de un sistema, red o proceso para manejar una cantidad creciente de trabajo de manera eficiente, o su capacidad para ampliarse y dar cabida a ese crecimiento.
Consumo de energía
La cantidad de energía eléctrica que consume el ordenador ( consumo energético ). Esto cobra especial importancia en sistemas con fuentes de energía limitadas, como la energía solar, las baterías y la energía humana.
Rendimiento por vatio
Los diseñadores de sistemas que construyen computadoras paralelas , como el hardware de Google , eligen las CPU en función de su velocidad por vatio de potencia, porque el costo de alimentar la CPU supera el costo de la propia CPU. [ 7 ]
Para las computadoras de vuelos espaciales, la relación velocidad de procesamiento por vatio es un criterio de rendimiento más útil que la velocidad de procesamiento bruta debido a los recursos limitados de energía a bordo. [ 8 ]
Relación de compresión
La compresión es útil porque ayuda a reducir el uso de recursos, como el espacio de almacenamiento de datos o la capacidad de transmisión. Dado que los datos comprimidos deben descomprimirse para poder utilizarse, este procesamiento adicional genera costos computacionales u otros costos derivados de la descompresión; esta situación dista mucho de ser gratuita. La compresión de datos implica una compensación entre la complejidad espacio-temporal.
Tamaño y peso
Se trata de una compensación inherente a los sistemas móviles, desde la escala de los teléfonos inteligentes hasta los sistemas integrados portátiles en las naves espaciales.
Impacto ambiental
El impacto de la informática en el medio ambiente, tanto durante la fabricación y el reciclaje como durante su uso. Se realizan mediciones con el objetivo de reducir los residuos, disminuir los materiales peligrosos y minimizar la huella ecológica de un ordenador .
Recuento de transistores
El número de transistores en un circuito integrado (CI). El número de transistores es la medida más común de la complejidad de un CI.
Puntos de referencia
Debido a la gran cantidad de programas que existen para probar una CPU en todos los aspectos de su rendimiento, se desarrollaron pruebas de rendimiento (benchmarks ).
Los benchmarks más famosos son los benchmarks SPECint y SPECfp desarrollados por Standard Performance Evaluation Corporation y el benchmark Certification Mark desarrollado por Embedded Microprocessor Benchmark Consortium EEMBC .
Pruebas de rendimiento de software
En ingeniería de software, las pruebas de rendimiento se realizan, en general, para determinar cómo se comporta un sistema en términos de capacidad de respuesta y estabilidad bajo una carga de trabajo específica. También pueden servir para investigar, medir, validar o verificar otros atributos de calidad del sistema, como la escalabilidad, la fiabilidad y el uso de recursos.
Las pruebas de rendimiento son un subconjunto de la ingeniería de rendimiento, una práctica emergente de la informática que busca integrar el rendimiento en la implementación, el diseño y la arquitectura de un sistema.
Elaboración de perfiles (análisis de rendimiento)
En ingeniería de software , el perfilado ("perfilado de programas", "perfilado de software") es una forma de análisis dinámico de programas que mide, por ejemplo, la complejidad espacial (memoria) o temporal de un programa , el uso de instrucciones específicas o la frecuencia y duración de las llamadas a funciones. El uso más común de la información de perfilado es ayudar a la optimización de programas .
La creación de perfiles se logra instrumentando el código fuente del programa o su versión ejecutable binaria mediante una herramienta denominada perfilador (o analizador de código ). Los perfiladores pueden utilizar diversas técnicas, como métodos basados en eventos, estadísticos, instrumentados y de simulación.
Procesador
La unidad central de procesamiento (CPU), también llamada procesador central, procesador principal o simplemente procesador, es el procesador principal de una computadora. Sus circuitos electrónicos ejecutan las instrucciones de un programa informático, como operaciones aritméticas, lógicas, de control y de entrada/salida (E/S). [ 9 ]
The performance or speed of a processor depends, among other things, on the clock frequency (usually measured in hertz) and the number of instructions per cycle (IPC), which together determine the number of instructions per second (IPS) the CPU can execute.[10] Many reported IPS values represent "peak" execution speeds for artificial instruction sequences with few branches, whereas real workloads consist of a mix of instructions and applications, some of which run longer than others. The performance of the memory hierarchy also greatly affects processor performance, a factor that is rarely considered when calculating IPS. Due to these issues, various standardized tests, often called "benchmarks," such as SPECint, have been developed to attempt to measure real effective performance in commonly used applications.
Computer performance increases through the use of multicore processors, which essentially connect two or more separate processors (in this sense called cores) on a single integrated circuit. Ideally, a dual-core processor should be almost twice as powerful as a single-core one. In practice, performance gains are much smaller, about 50%, due to imperfect software algorithms and implementation.[11] Increasing the number of cores in a processor (e.g., dual-core, quad-core, etc.) increases the workload it can handle. This means the processor can now process numerous asynchronous events, interrupts, and so forth, which might negatively impact the CPU under overload. These cores can be viewed as different floors in a processing plant, where each floor handles its own task. Sometimes these cores will process the same tasks as neighboring cores if one core is insufficient for handling the information. Multicore CPUs enhance a computer's ability to perform multiple tasks simultaneously by providing additional computational power. However, the speed increase is not directly proportional to the number of cores added. This is because cores need to interact via specific channels, and this inter-core communication consumes part of the available computing power.[12]
Due to the specific capabilities of modern CPUs, such as simultaneous multithreading and uncore— which imply shared use of actual CPU resources to improve utilization—monitoring performance levels and hardware usage has gradually become a more complex task.[13] In response, some CPUs implement additional hardware logic that tracks the actual utilization of various parts of the CPU and provides various counters accessible to software; an example is Intel's Performance Counter Monitor technology.[14]
Performance tuning
La optimización del rendimiento consiste en mejorar el desempeño de un sistema . Si bien suele aplicarse a aplicaciones informáticas, los mismos métodos pueden utilizarse en mercados económicos, burocracias u otros sistemas complejos. La motivación para esta actividad se denomina problema de rendimiento, que puede ser real o previsto. La mayoría de los sistemas responden a un aumento de carga con una disminución del rendimiento. La capacidad de un sistema para soportar una mayor carga se denomina escalabilidad , y modificar un sistema para que gestione una mayor carga es sinónimo de optimización del rendimiento.
La puesta a punto sistemática sigue estos pasos:
- Evaluar el problema y establecer valores numéricos que clasifiquen el comportamiento aceptable.
- Mida el rendimiento del sistema antes de modificarlo.
- Identifica la parte del sistema que es fundamental para mejorar el rendimiento. Esto se denomina cuello de botella .
- Modifique esa parte del sistema para eliminar el cuello de botella.
- Mida el rendimiento del sistema después de la modificación.
- Si la modificación mejora el rendimiento, adóptala. Si la modificación lo empeora, vuelve a la configuración anterior.
Rendimiento percibido
En ingeniería informática, el rendimiento percibido se refiere a la rapidez con la que una función de software parece realizar su tarea. Este concepto se aplica principalmente a aspectos de aceptación por parte del usuario .
Mostrar una pantalla de inicio (véase Pantalla de bienvenida) o un cuadro de diálogo de progreso de la descarga no acelera el proceso. Sin embargo, satisface algunas necesidades del usuario: le da una apariencia de mayor rapidez y, además, proporciona una señal visual que le indica que el sistema está procesando su solicitud.
En la mayoría de los casos, aumentar el rendimiento real aumenta el rendimiento percibido, pero cuando el rendimiento real no se puede aumentar debido a limitaciones físicas, se pueden utilizar técnicas para aumentar el rendimiento percibido.
Ecuación de rendimiento
El tiempo total ( t ) necesario para ejecutar un programa de referencia específico es
- o equivalentemente
- [ 15 ]
dónde
- es "el rendimiento" en términos de tiempo de ejecución
- N es el número de instrucciones ejecutadas (la longitud de la ruta de instrucción ). La densidad del código del conjunto de instrucciones afecta fuertemente a N. El valor de N puede determinarse con exactitud mediante un simulador de conjunto de instrucciones (si está disponible) o mediante estimación, que a su vez se basa parcialmente en la distribución de frecuencia estimada o real de las variables de entrada y en el análisis del código máquina generado por un compilador HLL . No puede determinarse a partir del número de líneas de código fuente HLL. N no se ve afectado por otros procesos que se ejecutan en el mismo procesador. El punto importante aquí es que el hardware normalmente no registra (o al menos no facilita) el valor de N para los programas ejecutados. Por lo tanto, el valor solo puede determinarse con precisión mediante la simulación del conjunto de instrucciones, lo cual rara vez se practica.
- es la frecuencia del reloj en ciclos por segundo.
- es el promedio de ciclos por instrucción (CPI) para esta prueba de rendimiento.
- es el promedio de instrucciones por ciclo (IPC) para esta prueba de rendimiento.
Incluso en una misma máquina, un compilador diferente o el mismo compilador con diferentes opciones de optimización pueden cambiar N y CPI: la prueba de rendimiento se ejecuta más rápido si el nuevo compilador puede mejorar N o C sin empeorar el otro, pero a menudo existe una compensación entre ellos: ¿es mejor, por ejemplo, usar unas pocas instrucciones complicadas que tardan mucho tiempo en ejecutarse, o usar instrucciones que se ejecutan muy rápidamente, aunque se necesiten más para ejecutar la prueba de rendimiento?
A menudo se requiere que un diseñador de CPU implemente un conjunto de instrucciones particular , por lo que no puede cambiar N. A veces, un diseñador se centra en mejorar el rendimiento realizando mejoras significativas en f (con técnicas como pipelines más profundos y cachés más rápidas), mientras que (con suerte) no sacrifica demasiado C, lo que lleva a un diseño de CPU ultrarrápido . A veces, un diseñador se centra en mejorar el rendimiento realizando mejoras significativas en CPI (con técnicas como ejecución fuera de orden , CPU superescalares , cachés más grandes, cachés con tasas de acierto mejoradas, predicción de bifurcaciones mejorada , ejecución especulativa , etc.), mientras que (con suerte) no sacrifica demasiado la frecuencia de reloj, lo que lleva a un diseño de CPU de alto rendimiento. [ 16 ] Para un conjunto de instrucciones dado (y por lo tanto N fijo) y un proceso de semiconductor, el rendimiento máximo de un solo hilo (1/t) requiere un equilibrio entre técnicas de alto rendimiento y técnicas de alto rendimiento. [ 15 ]
Véase también
- Eficiencia algorítmica
- Computación (aprendizaje automático)
- Rendimiento informático por órdenes de magnitud
- Rendimiento de la red
- Arquitectura de procesador orientada a la latencia
- Optimización (informática)
- Tasa de actualización de la RAM
- Conjunto completo de instrucciones
- aceleración de hardware
- Aceleración
- Políticas de reemplazo de caché
- Comprender el hardware de su PC
- Eficiencia relativa
Referencias
- ↑ Arnold O. Allen (1994). "1.1 Introducción". Análisis del rendimiento informático con Mathematica . Academic Press. pág. 1.
- ↑ Medición de la similitud de programas: experimentos con conjuntos de pruebas de rendimiento de CPU SPEC , 2005, págs. 10–20 , CiteSeerX 10.1.1.123.501
- ↑ Wescott, Bob (2013). El libro de rendimiento de todos los ordenadores, Capítulo 3: Leyes útiles . CreateSpace . ISBN 978-1482657753.
- ↑ Saleem Bhatti. "Capacidad del canal" . Apuntes de clase para la maestría en Redes de Comunicación de Datos y Sistemas Distribuidos D51 - Comunicaciones y Redes Básicas . Archivado del original el 21 de agosto de 2007.
- ↑ Jim Lesurf. "¡Las señales parecen ruido!" . Información y medición, 2.ª ed .
- ↑ Thomas M. Cover, Joy A. Thomas (2006). Elementos de la teoría de la información . John Wiley & Sons, Nueva York.
- ↑ "EEMBC -- el Consorcio de Evaluación Comparativa de Microprocesadores Integrados" . Archivado del original el 27 de marzo de 2005. Consultado el 21 de enero de 2009 .
- ↑ DJ Shirley y MK McLelland. "La computadora de vuelo espacial RISC SC-7 de próxima generación" . pág. 2.
- ↑ "¿Qué es un procesador (CPU)?" . www.techtarget.com . Consultado el 15 de agosto de 2025 .
- ↑ "¿Cómo se mide la velocidad del procesador?: Entendiendo las métricas de rendimiento de la CPU" . bytebitebit.com . Consultado el 15 de agosto de 2025 .
- ↑ "Quad Core Vs. Dual Core" . techspirited.com . Consultado el 15 de agosto de 2025 .
- ↑ "Factores que afectan el rendimiento de los procesadores multinúcleo" . pcsite.co.uk . Consultado el 15 de agosto de 2025 .
- ↑ "Explicación de la utilización de la CPU en arquitecturas multihilo" . blogs.oracle.com . Consultado el 15 de agosto de 2025 .
- ↑ "Intel Performance Counter Monitor: una mejor manera de medir la utilización de la CPU" . www.intel.com . Consultado el 15 de agosto de 2025 .
- 1 2 Paul DeMone. "La increíble CPU que se encoge". 2004. Archivado el 31 de mayo de 2012 en Wayback Machine.
- ↑ "Genios, demonios de la velocidad y despedida" de Linley Gwennap
- Rendimiento informático