Professional Documents
Culture Documents
Ver [4]: Las optimizaciones locales se realizan sobre un bloque básico. Algunos
ejemplos de optimización local son:
Folding
Propagación de constantes
Reducción de subexpresiones comunes
Folding o ensamblamiento
El ensamblamiento es remplazar las expresiones por su resultado cuando se pueden
evaluar en tiempo de compilación (resultado constante).
Ejemplo:
A = 2+3+A+C A = 5 +A+C
Propagación de constantes
Desde que se asigna a una variable un valor constante hasta la siguiente asignación,
se considera a la variable equivalente a la constante.
a=b+
cd=a-
de=a
f=d
Algunos otros ejemplos de optimización en Java
Reutilización de variables
Ver [3]: Si vemos que hemos dejado de utilizar una variable en particular, hay que
reutilizarla, siempre y cuando no afecte el código donde la usamos originalmente. Por
ejemplo, en vez de usar esto:
Ver [1]: BigInteger y BigDecimal son populares debido a su precisión, sin embargo,
requieren mucha más memoria que un simple largo o doble y ralentizan todos los
cálculos de manera espectacular. Entonces, mejor se debe pensar dos veces si se
necesita la precisión adicional.
Muchas veces esto podría ser lo único que se necesita cambiar para solucionar los
problemas que se estén presentando de rendimiento, especialmente si está
implementando un algoritmo matemático.
1. package com.arquitectura;
2.
3. import java.math.BigInteger;
4.
5. public class CalcularFactorial2 {
6.
7. public static void main(String[] args) {
8.
9. System.out.println(factorial(new BigInteger("1000")));
10.
11. }
12. static BigInteger factorial(BigInteger n)
13. {
14. if (n.equals(BigInteger.ZERO))
15. return BigInteger.ONE;
16. else
17. return n.multiply(factorial(n.subtract(BigInteger.ONE)));
18. }
19. }
En el codigo anterior hemos creado un objeto de tipo BigInteger y hemos usado los
métodos que tiene (multiply) para realizar las operaciones que necesitamos. Una vez
procesado el resultado será el siguiente:
Por lo tanto, para que tu código sea eficiente debe respetar las convenciones y para
que funcionen las convenciones, cada persona que escribe software debe seguir la
convención.