Nous avons une grande classe avec 68 int, 22 membres doubles, et il y a aussi 4 membres en classe. par exemple java: Comment la mémoire d'un membre de la classe est-elle allouée?
Class A{
public int i1
public int i2
public int i3
....
public Order order1
public Order order2
...
public double..
}
1: La mémoire de i1, i2, i3 est toujours physiquement?
2: Pour la classe A, stocke-t-il le pointeur sur order1 & order 2, ou stocke-t-il le contenu de la commande 1 & order 2?
Il existe une autre classe B qui a un membre sous la forme d'un tableau de A, il y a 365 A. Donc la mémoire pour B pourrait être très grande. Ma préoccupation est que si la taille de B est trop grande, nous pouvons avoir beaucoup de cache de niveau 2 manquant et dégrader les performances. Nous allons principalement additionner la valeur de i1, et additionner la valeur de i2, et additionner la valeur de i3 etc. par exemple si somme i1 pour tout 365 A, alors le i1 pour tous ces 365A ne restera pas continuellement dans la mémoire. Nous pourrions donc manquer un cache et obtenir de mauvaises performances.
Je pense à l'aide de la classe B, mais retirer la classe A, et déplacer tous les éléments à l'intérieur de A à B, afin que nous puissions
Class B {
public array_of_i1
public array_of_i2
..
}
De cette façon, lorsque je calcule la somme de i1 ou i2, alors tous les i1 ou i2 sont assis ensemble, alors peut-être que nous pourrions obtenir une amélioration de la performance?
Comme la classe est énorme, je voudrais chercher vos opinions avant le changement.