Personnellement je ne pense pas que les gc posent vraiment problème. Ils sont tout à fait capables de gérer correctement les choses même avec de fortes charges et pour peu qu'on ne fasse pas n'importe quoi on arrive à des cas où les full gc (ou équivalent) ne se déclenchent presque jamais. Le problème c'est de croire que l'on peut continuer à faire des logiciels aujourd'hui comme on en faisait il y a 25 ans avec un seul gros programme qui fait tout. Les gc sont juste révélateurs de ces cas où l'architecture n'est pas idéale.
Si tu découpe ton programme en plusieurs petits programmes, le boulot du gc devient bien plus simple, ton boulot de développeur aussi, les perf s'améliorent par une meilleure utilisation des CPU,...
Bref si les gc ne sont pas aussi performants que la RAII et qu'ils ne s'appliquent qu'à la gestion de la mémoire1, ils ne représentent un vrai goulot d'étranglement que dans des cas où tu cherche de la très haute performance et dans les cas où l'organisation de ton appli n'est AMHA, pas adaptée.
si tous les programmeurs qui utilisent des gc avaient conscience que le gc d'une part n'empêche pas les fuites mémoire et d'autre part ne gère qu'une partie des problème de gestion des ressources. Ce serait déjà un grand pas. ↩
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Un langage complexe ?
Posté par barmic . En réponse à la dépêche Le langage Rust en version 1.0 alpha, on arrête de tout casser !. Évalué à 7.
Personnellement je ne pense pas que les gc posent vraiment problème. Ils sont tout à fait capables de gérer correctement les choses même avec de fortes charges et pour peu qu'on ne fasse pas n'importe quoi on arrive à des cas où les full gc (ou équivalent) ne se déclenchent presque jamais. Le problème c'est de croire que l'on peut continuer à faire des logiciels aujourd'hui comme on en faisait il y a 25 ans avec un seul gros programme qui fait tout. Les gc sont juste révélateurs de ces cas où l'architecture n'est pas idéale.
Si tu découpe ton programme en plusieurs petits programmes, le boulot du gc devient bien plus simple, ton boulot de développeur aussi, les perf s'améliorent par une meilleure utilisation des CPU,...
Bref si les gc ne sont pas aussi performants que la RAII et qu'ils ne s'appliquent qu'à la gestion de la mémoire1 , ils ne représentent un vrai goulot d'étranglement que dans des cas où tu cherche de la très haute performance et dans les cas où l'organisation de ton appli n'est AMHA, pas adaptée.
si tous les programmeurs qui utilisent des gc avaient conscience que le gc d'une part n'empêche pas les fuites mémoire et d'autre part ne gère qu'une partie des problème de gestion des ressources. Ce serait déjà un grand pas. ↩
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)