Après c'est un problème de fréquence et de temps passé à résoudre le problème comparativement au temps passé à toujours penser à la gestion de la mémoire.Envoyé par deneb
Dans mon cas, bien qu'utilisant du java au quotidien (appli web), je n'ai jamais créé de nouveaux threads. De plus, tant mon travail que celui de mes plusieurs collègues ne nous a jamais pété à la tronche comme tu dis.
Par contre, un oubli dans la taille de ton malloc m'avait couté très très cher à l'époque
De plus, un gars qui créé 200 000 threads sans penser à les gérer plus que ça il a non seulement des problèmes dans son code mais aussi et surtout dans sa conception !
Dans la même veine, j'aimerai vraiment voir la tête des erreurs qui t'ont pété à la figure. Ne serait ce pas des cas bien particuliers où même les habitudes "standards/de base" d'un développeur C++ inattentif n'auraient pas fait la différence ?
Et là encore, au demeurant, qu'en est il de la conception derrière, de la revue de la dite conception, de la revue du code, des tests de perfs et ainsi de suite ?
Bref, dans mon quotidien je ne vois pas le besoin d'une gestion manuelle. Devoir penser à la mémoire des fois, oui, bien sûr, et merci de le rappeller pour ceux qui auraient oubliés, mais de là à la gérer tout le temps à la main...
Comme dit plus haut, par contre, je ne nie pas que dans certains cas très précis (gestion de la mémoire à l'octet, environnement très très contraint), le manque de gestion plus manuelle peut venir à manquer.
Et encore, dans le cas de l'environnement très contraint (volume de données, nombres d'échanges), la conception est aussi des plus primordiales, ainsi que le choix des outils, et je serai très surpris de voir que les perfs d'un ensemble complexe ne découlent que des choix d'un petit développeur dans son coin qui gère mal un ensemble de threads...
D'ailleurs, il y a du java qui tourne dans des environnements avec forte charge, ça veut bien dire que ce n'est pas impossible. Et d'ailleurs je ne suis pas certain que concevoir un tel bébé en Java soit plus compliqué que de concevoir la chose avec un langage ayant une gestion manuelle de la mémoire. La gestion automatique de la mémoire va aussi enlever une part du souci et des inquiétudes des concepteurs.
Bref, je ne vois que les environnements où la gestion de la mémoire est à l'octet près où le Java est, à priori, peu recommandé. Mais bon, ces environnements sont de moins en moins nombreux, je ne m'inquiète pas. Et après, suffit de voir le succès de Java sur les mobiles !
Attention, je ne dis pas que le GC de Java soit parfait, je dis juste "dans 95 % des cas la gestion automatique de la mémoire est préférable, selon moi", vu les arguments énoncés ci dessus.
Après, c'est pas une solution miracle, le mec qui oublit de gérer ses threads ou fait une conception boiteuse ne pourra pas compter sur le language et la plate forme pour tout faire pour lui. Et encore heureux !
Partager