Le refactoring peut-il avoir un effet négatif sur les performances java? [dupliquer]


Cette question a déjà une réponse ici:

Une trame d'une pile de threads est créée lorsqu'une méthode est appelée, et la création de trames de pile a un effet négatif sur les performances d'un programme java. Je veux savoir comment beaucoup d'effet c'est?

Comme je le sais, les codes de refactorisation conduisent souvent à séparer un appel de méthode en plusieurs appels de méthode, et je pense que cela conduit à incrémenter le nombre d'appels de méthode à la fin. Alors, est-il vrai que les moyens de refactorisation avec les appels de méthode de séparation ont un effet négatif sur les performances des programmes java à refactoriser?

Par exemple:

Avant refactorisé:

public class MyClassA {
    public void doTask1(){
       // here is very verbose code
    }
}

Après refactorisation:

public class MyClassA {
    public void doTask1(){
        taskPart1();
        taskPart2();
        taskPart3();
    }
    public void taskPart1(){
        // do something that used to be in doTask1..
    }
    public void taskPart2(){
        // do something that used to be in doTask1..
    }
    public void taskPart3(){
        // do something that used to be in doTask1..
    }
}
Author: ParkCheolu, 2017-01-26

1 answers

La surcharge de l'appel de méthode n'est de loin pas assez importante pour justifier une optimisation / des soucis de performance prématurés . Ce n'est certainement pas assez significatif pour vous empêcher de créer et d'appeler des méthodes où elles ont une bonne signification sémantique.

De plus, le compilateur pourrait même les intégrer.

Acheter un meilleur matériel estpresque toujours moins cher que de traiter des bogues introduits au nom de meilleures performances. C'est une sorte d'idée derrière beaucoup aspects de Java (pensez à la vérification des limites du tableau).

 2
Author: Jiri Tousek, 2017-01-26 14:02:44