Lorsque vous écrivez souvent quelque chose qui crée de nombreux (des milliers) de petits objets, devriez-vous essayer de le minimiser pour les performances? Surtout si vous ne savez pas sur quel système il sera exécuté, des ordinateurs de bureau bas à haut de gamme ou même mobiles. Pour le mobile, j'ai entendu dire que la création de nombreux objets entrave considérablement les performances, bien que je ne sache pas à quel point cela est vrai.
J'ai un exemple qui montre bien cette idée. Dans un programme graphique, supposons qu'il existe une méthode utilisée pour tous les dessins, idéalement appelée drawPixel(Point)
. Il pourrait y avoir des milliers de points créés et il peut être répété souvent, comme dans un jeu où il pourrait être appelé plus de 60 fois par seconde. Alternativement, drawPixel(int x, int y)
pourrait être utilisé pour minimiser la création de nombreux objets Point.
Dans une conception orientée objet, je pense que l'utilisation de Point serait préférable. Cependant, l'utilisation de types primitifs peut augmenter les performances. Le gain de performances peut être négligeable dans la plupart des cas, mais je ne suis pas sûr de choses comme des machines mobiles ou plus anciennes. Quel est le gain de performances de faire quelque chose comme ça et est-ce quelque chose qui devrait être pris en considération?
System.getProperty("java.version")
(ou "java.vm.version") est un point de départ.