La vitesse CPUs s’améliore plus vite que la bande passante (et la latence) d’accès la mémoire.
De plus, la taille des caches de niveau L1 et L2 na pas augmentée depuis quelques années. Donc le prefetching ne s’améliore pas vraiment ou bien il ne peut pas s’améliorer assez par manque de place dans les caches L1 et L2.
Référence: la présentation de Gil Tene (CTO d'Azul systems, créateur d'une JVM ou le GC ne provoque pas des "stop the world") a DevoxxFR 2015 sur les optimisations de la JVM.
Donc stocker une collection de POD de manière contiguë en mémoire a un impact très positif sur les perfs. Et plus le temps passe, plus cella devient vrai, et plus les cache miss sont pénalisant. Cela explique pourquoi Java se dirige doucement vers les "value types" pour Java 10.
Référence: la présentation de Brian Goetz (un des architectes de Java) a DevoxxFR 2015 sur le futur de Java.
[^] # Re: Les systèmes à entités
Posté par djano . En réponse à la dépêche Je crée mon jeu vidéo E15 : J'arrête.... Évalué à 5.
C'est toujours le cas, voire même pire encore.
La vitesse CPUs s’améliore plus vite que la bande passante (et la latence) d’accès la mémoire.
De plus, la taille des caches de niveau L1 et L2 na pas augmentée depuis quelques années. Donc le prefetching ne s’améliore pas vraiment ou bien il ne peut pas s’améliorer assez par manque de place dans les caches L1 et L2.
Référence: la présentation de Gil Tene (CTO d'Azul systems, créateur d'une JVM ou le GC ne provoque pas des "stop the world") a DevoxxFR 2015 sur les optimisations de la JVM.
Donc stocker une collection de POD de manière contiguë en mémoire a un impact très positif sur les perfs. Et plus le temps passe, plus cella devient vrai, et plus les cache miss sont pénalisant. Cela explique pourquoi Java se dirige doucement vers les "value types" pour Java 10.
Référence: la présentation de Brian Goetz (un des architectes de Java) a DevoxxFR 2015 sur le futur de Java.