Optimización del lenguaje Delphi
1) Valor de retorno del tipo de registro o matriz
Los programadores de C++ no harán esto porque el valor de retorno se enviará a la pila, lo que resultará en eficiencia tanto de tiempo como de espacio. Delphi no tiene este problema. El valor de retorno es equivalente al parámetro Out y la persona que llama pasa el puntero de la unidad de memoria. Por lo tanto, puede utilizar valores de retorno de registros o matrices para aumentar la legibilidad y la comodidad al escribir expresiones.
2) Expresión pública
Delphi sólo extrae expresiones comunes dentro de una línea de declaración. Si una expresión común contiene una llamada a función o acceso a una propiedad, no se extrae, es decir, se evalúa dos veces, porque la extracción puede dar como resultado un cambio en la semántica.
3) parámetros constantes
Cuando los parámetros de la función no se cambian, si la longitud del parámetro excede los 4 bytes o es un tipo de interfaz, cadena o matriz dinámica, el uso de parámetros constantes permite al compilador pasarlo en modo de dirección sin modificar la tecnología de referencia.
4) Austeridad
Delphi asignará el espacio más pequeño posible al asignar unidades de almacenamiento. Si es lo suficientemente pequeño y cabe en un registro, generalmente se utiliza la operación directa con el registro. Por ejemplo, al asignar registros o datos con una longitud de 4 bytes, el compilador utilizará automáticamente registros de 32 bits según DWord.
5) Operador
Dividir por 2 o 4 se optimizará para desplazar a la derecha, y multiplicar por 2 o 4 se optimizará para desplazar a la izquierda, por lo que no es necesario utilizar operaciones de desplazamiento específicamente y se puede escribir código más legible. Pero la multiplicación y división por 8 y otros múltiplos de 2 no tendrán esta optimización.
i := i + 1; e Inc(i); generalmente producen el mismo código.
6) coma flotante
Delphi no optimiza los cálculos de punto flotante, ni siquiera agregar operaciones cero no se optimizará y se agregarán muchas instrucciones FWAIT. Por lo tanto, al escribir operaciones clave de punto flotante, debe optimizar las expresiones usted mismo y extraer las expresiones públicas usted mismo. Utilice la menor cantidad de variables intermedias posible, porque las variables de punto flotante no se optimizarán y se volverán a escribir en la memoria incluso si no se utilizan más adelante. Utilice el ensamblaje si es necesario, o considere usar C. Sin embargo, en general, no hay mucha diferencia en el rendimiento entre programas equivalentes de punto flotante en Delphi y C.
7) con declaración
with puede generar variables intermedias implícitas para evitar cálculos repetidos
8) Colección
i en [0..31] es más rápido que (i >= 0) y (i <= 31)
9) Ancho de broca
Cuando no se usa compresión, use números enteros y cardinales, porque SmallInt, ShortInt, Byte, etc. también ocuparán 4 u 8 bytes cuando el byte esté alineado. Todavía son 32 bits en el cálculo y primero deben expandirse a 32 bits.