Profile picture of Philémon GLOBLÉHI
Philémon GLOBLÉHI
Développeur Java
Follow me
Generated by linktime
May 18, 2025
Astuce Java simple, mais puissante… Quand je traite de gros volumes de données avec les streams, je fais toujours attention à l’ordre des opérations. Appeler .parallel() avant .filter() et .map() pour profiter du traitement parallèle. Ce genre de petit détail peut faire toute la différence quand on pense scalabilité et architecture robuste. ---- PS : Vous avez un besoin en architecture backend Java robuste ? Réservez un rendez-vous : https://lnkd.in/ecRArCmt
Stay updated
Subscribe to receive my future LinkedIn posts in your mailbox.

By clicking "Subscribe", you agree to receive emails from linktime.co.
You can unsubscribe at any time.

129 Likes
May 18, 2025
Discussion about this post
Profile picture of Manu - Cj
Manu - Cj
Java Developer
3 months ago
Merci pour ton tips, c'est bon à savoir
Profile picture of Rony RAUZDUEL
Rony RAUZDUEL
Concepteur Développeur Oracle PL/SQL • Pro*C
3 months ago
Au lieu de faire .stream().parallel() tu peux faire directement .parallelStream()
Profile picture of Moussab Amine AMRINE
Moussab Amine AMRINE
Ingénieur Concepteur Développeur | J’accompagne les entreprises dans la modernisation, la refonte et le développement d’applications web sur mesure
4 months ago
Très bonne remarque, et tu as totalement raison de souligner l’importance de l’ordre des opérations dans les streams, ça change tout niveau perfs et scalabilité. Petite nuance néanmoins : .parallel() avant .filter() n’est pas toujours optimal. Par exemple, si filter() élimine 70% des données, tu engages inutilement plusieurs threads pour traiter ce qui va de toute façon être jeté. Dans ce cas, filtrer avant de paralléliser peut être bien plus efficace. Dans l’exemple que tu proposes, on ne connaît pas à l’avance combien de personnes ont plus de 18 ans. Il se peut que la majorité soient concernées… mais il est tout aussi possible que très peu le soient. C’est justement pour ça qu’il peut être plus judicieux de filtrer d’abord sur l’âge : on réduit ainsi le nombre d’éléments à traiter. Ensuite, si le traitement est coûteux et que le volume restant le justifie, on peut paralléliser à ce moment-là. 👉 L’idée, c’est de ne paralléliser que ce qui en vaut la peine, pas tout par défaut. Donc personnellement le mieux, on réduit la taille avant de paralléliser users.stream()   .filter(person -> person.getAge() > 18)    .parallel()   .map(this::expensiveOperation)      .toList();