En primer lugar, la optimización del rendimiento conocidos

  Prefacio: "Código no aprende a pensar en sintonía" sentirse escuchado a menudo este tipo de cosas, pensando que aprender sobre el excelente corte, con el fin de sintonizar mejor desde el punto de vista de código de alta calidad de escritura, a continuación, abra aprender acerca de la optimización del rendimiento.

A veces claramente los procedimientos escritos correctamente, la cantidad de datos hasta uno, lenta no es un error, que es la razón? Es al final la forma de correr? Cuando se gasta tiempo? Piense alrededor de dos las once de Taobao, año tras año sin problemas, esta actuación es realmente a la fuerza!

Como desarrollador de servicios de fondo, más preocupado por el servidor: el tiempo de respuesta del servidor, rendimiento, etc., son todos los parámetros de rendimiento importantes. Tallas grandes es OOM, SOF arriba.

Uno: Visión general del rendimiento

ejecución de los programas, en general, hay varios aspectos del rendimiento:

  • Rapidez de ejecución: El programa refleja la posibilidad de responder con rapidez y la duración del tiempo.
  • asignación de memoria: la asignación de memoria es razonable, ya sea demasiado o consumir pérdida de memoria.
  • Hora de inicio: El programa se puede ejecutar desde el negocio de procesamiento normal el tiempo que tarda.
  • Capacidad de carga: Cuando se aumenta la presión del sistema, la velocidad de ejecución del sistema, si la curva ascendente tiempo de respuesta suave.

II: Índice de Referencia Rendimiento

indicadores:

  • Tiempo de ejecución: un pedazo de código para ejecutar desde el comienzo del fin del tiempo pasado.
  • asignación de memoria: espacio de memoria ocupado tiempo de ejecución.
  • Tiempo de CPU: Hilo de tiempo de CPU.
  • Rendimiento del disco: el uso de E / S
  • Rendimiento de la red: el uso de la red.
  • Tiempo de respuesta: el tiempo de respuesta del sistema a un usuario para ciertas operaciones.

1. Teoría del barril

También conocido como "teoría corto plato", el núcleo es: ¿cuánto de un cubo lleno de agua, no depende de la más alta trozo de madera, pero en la pieza más bajo.

 

Poner en un sistema de optimización del rendimiento, si el sistema tiene suficientes recursos de memoria y CPU, pero si el pobre rendimiento de E / S, el rendimiento global del sistema está determinado por el disco más lento que la velocidad de E / S de la corriente, en lugar de la mejor o CPU la memoria.

 

Sustancialmente asociado con el mismo también puede implicar: disco I / O, el funcionamiento en red, CPU, anormal, base de datos, la contención de bloqueo, la memoria y similares.

2.Amdahl 律

Aumento de velocidad se define: antes de la optimización después de la aceleración = Sistema de Procesado / sistema de optimización de Procesado

Speedup ≤ 1 / (F + (1-F) / N) F: gravedad específica debe ser serializado N: Número de procesador de CPU

 Tres: el nivel de sintonización

1. Diseño de sintonización

Anula todas las herramientas de ajuste a menudo requieren el desarrollo de software anterior. Antes del desarrollo de todos, tenemos que evaluar una variedad de posibles problemas en el sistema, y ​​dar un diseño razonable.

Optimización del Diseño principal característica es que puede evitar problemas de rendimiento de uno de sus componentes, en lugar de conseguir una mejora del componente. Tales como: A Componente B tiene que esperar a que un evento para activar una acción. Si un componente es detectada por un seguimiento constante se ha producido un evento de ciclo B, se detecta un comportamiento está obligado a ocupar parte de los recursos del sistema, por lo que los desarrolladores tendrán inevitablemente un equilibrio entre la frecuencia de detección y consumo de recursos. Si la frecuencia de prueba es demasiado baja, a pesar de la reducción del consumo de recursos, pero la respuesta en tiempo real del sistema se reduce.

Código optimización de consideración, es necesario para optimizar el método de detección, y para obtener una frecuencia de detección razonable.

Si el nivel de optimización en términos de diseño, se puede utilizar el método de notificación de eventos será el comportamiento del sistema al revés. Por ejemplo, el patrón de observador: cuando se produce un evento B, la notificación de evento Un componente de B, desencadenando de ese modo el comportamiento del componente A.

2. Código de sintonización

Tuning se refiere al código en el proceso de desarrollo de software, después de la terminación, mantenimiento y mejora aun y optimización de los programas de código realiza el proceso.

Se trata de muchas técnicas de codificación, tales como el lenguaje familiar de API abierta, uso flexible de algoritmos, estructuras de datos. Tales como: HashMap y la seguridad de ConcurrentHashMap, ArrayList y LinkedList de rendimiento de acceso aleatorio.

3.JVM sintonización

Como todos sabemos, los programas Java se ejecutan en la máquina virtual JVM, este aspecto es también muy importantes puntos de optimización. Por lo general, llevado a cabo en la última parte del desarrollo de software.

En primer lugar necesidad de comprender los principios de funcionamiento de la máquina virtual Java, el mecanismo, la estructura de memoria, composición, etc. JVM.

Entonces hay parámetros de JVM: tamaño de la pila, la política de la recogida de basura, los parámetros de GC, la información de configuración de registro

Cuatro: Base de datos de sintonización

1. La capa de aplicación está optimizada instrucción SQL

conexión de base a los aspectos de acceso; consejos de optimización de SQL: como consulta difusa, estructuras de datos, índices que intervienen en el motor de ejecución (MySQL)

2. optimización de bases de datos

estructura de la tabla razonable, diseño de la tabla, mejorar la eficiencia de mesas múltiples consultas en cascada. Sub-biblioteca particiones subtabla. Y el uso del índice.

3. optimización del software de base de datos

conjunto compartido de tamaño razonable, tampones de caché y así sucesivamente.

Cinco: Optimización del sistema operativo

La memoria virtual, el tamaño de bloque de disco, el número máximo de identificadores de archivo y así sucesivamente.

 

Supongo que te gusta

Origin www.cnblogs.com/flyinglion/p/12508014.html
Recomendado
Clasificación