Logiciel de detection de fuite mémoire - C++ - Programmation
Marsh Posté le 05-04-2007 à 22:53:05
Sous linux, valgrind. Pour windows, j'en "connais" qu'un, payant, IBM Rational Purify (et Purify Plus, je connais pas les différences).
Il y en a d'autres, mais c'est les seuls dont j'ai vraiment entendu parler (et puis, google sur "memory leak check" ou "memory leak detection" par exemple, tu auras quelques infos aussi )
Marsh Posté le 05-04-2007 à 22:59:30
Pour visual studio, j'ai déjà utilisé ça :
http://www.codeproject.com/tools/leakfinder.asp
Marsh Posté le 05-04-2007 à 23:02:36
IrmatDen a écrit : Sous linux, valgrind. Pour windows, j'en "connais" qu'un, payant, IBM Rational Purify (et Purify Plus, je connais pas les différences). |
Purify fonctionne aussi au moins sous Linux et Solaris.
Marsh Posté le 05-04-2007 à 23:46:19
did-54 a écrit : Bonjour, |
J'ai utilisé BoundsChecker il y a assez longtemps sous Visual C++ 6.0. C'est VC++ only, mais l'intégration à l'environnement de développement est pas mal faite du tout. Il détectait très bien les erreurs mémoires, avec quelques fausses alertes (notamment dans l'implémentaiton STL de Microsoft, cela se réglait en ajoutant quelques exclusions). La version actuelle supporte toutes les versions de cet IDE. Par contre, à l'époque il y avait un système de protection du logiciel mal conçu, pénible.
http://www.compuware.com/products/ [...] isualc.htm
Marsh Posté le 09-04-2007 à 21:54:45
IrmatDen a écrit : Sous linux, valgrind. Pour windows, j'en "connais" qu'un, payant, IBM Rational Purify (et Purify Plus, je connais pas les différences). |
Sous Windows, pour avoir utilisé les deux, Boundschecker est très supérieur à Purify, et probablement bien moins cher.
Marsh Posté le 09-04-2007 à 22:00:43
perso, j'ai pas mal utilisé glowcode, et j'en suis content :
Marsh Posté le 10-04-2007 à 00:38:22
el muchacho a écrit : Sous Windows, pour avoir utilisé les deux, Boundschecker est très supérieur à Purify, et probablement bien moins cher. |
Tu pourrais détailler, voir quels avantages à Boundchecker sur Purify ?
Marsh Posté le 10-04-2007 à 07:45:44
++fab a écrit : Tu pourrais détailler, voir quels avantages à Boundchecker sur Purify ? |
Je m'en étais servi il y a une paye, et de ce que je me souviens: Plus rapide, bien moins buggé, interface qui va un peu plus vite, et il buttait moins sur la stl (entre-autres, il comprenait ce qu'était une string, et il te l'affichait tel quel plutôt qu'avec son nom décoré). Purify, c'est comme Rose (de Rational aussi): un vieux logiciel qui n'est le standard que grâce à sa gloire passé.
Sous Solaris, il y a libumem aussi qui sait faire ça (bon, c'est gratuit, mais c'est moins sexy aussi).
Marsh Posté le 10-04-2007 à 13:49:14
Lam's a écrit : Je m'en étais servi il y a une paye, et de ce que je me souviens: Plus rapide, bien moins buggé, interface qui va un peu plus vite, et il buttait moins sur la stl (entre-autres, il comprenait ce qu'était une string, et il te l'affichait tel quel plutôt qu'avec son nom décoré). Purify, c'est comme Rose (de Rational aussi): un vieux logiciel qui n'est le standard que grâce à sa gloire passé. |
+1, j'avais été obligé d'utiliser Purify chez un client et il est bourré de défaut. Ce que je déteste, ce sont les "fausses alertes" par dizaines sur un code on ne peut plus standard : à se demander si l'éditeur a jamais fait des tests. Ceci dit, depuis ce temps là il n'y a plus de fuites mémoires dans mes codes, ou alors tellement peu que je peux les trouver "à la main". Chsais pas trop d'où ça vient, sûrement un ensemble de facteurs : faire gaffe , utiliser std::vector et pas des tableaux C, mettre des auto_ptr là où ils sont utiles, etc... Le nombre de 'new' dans mes codes a beaucoup baissé.
Marsh Posté le 10-04-2007 à 22:20:13
Lam's a écrit : Je m'en étais servi il y a une paye, et de ce que je me souviens: Plus rapide, bien moins buggé, interface qui va un peu plus vite, et il buttait moins sur la stl (entre-autres, il comprenait ce qu'était une string, et il te l'affichait tel quel plutôt qu'avec son nom décoré). Purify, c'est comme Rose (de Rational aussi): un vieux logiciel qui n'est le standard que grâce à sa gloire passé. |
Voilà, pareil. En gros, il y en avait un qui est utilisable et pas l'autre.
Et pour en remettre une couche sur Rational, je rajouterais Clearcase, et je ne parle pas du machin pour le suivi de défauts dont j'ai oublié le nom. J'arrête là, on va penser que j'en profite pour faire du mauvais esprit.
Marsh Posté le 10-04-2007 à 23:09:30
el muchacho a écrit : Voilà, pareil. En gros, il y en avait un qui est utilisable et pas l'autre. |
Spoiler : Clearquest |
Marsh Posté le 10-04-2007 à 23:29:00
el muchacho a écrit : Voilà, pareil. En gros, il y en avait un qui est utilisable et pas l'autre. |
chouette, tout ce que je doit utiliser au taf'
Marsh Posté le 10-04-2007 à 23:40:08
Si on t'impose pas requisite pro, tu peux t'estimer comme chanceux en fait.
Marsh Posté le 10-04-2007 à 23:40:11
OK, merci de vos avis. On utilise occasionellement Purify et ça nous dépanne quand même. Il y a toutefois pas mal d'erreurs graves signalées par Purify, qui n'ont jamais provoqué de plantages... Finalement, toute l'équipe croit que c'est un bug de purify. Valgrind, on l'utilise uniquement pour les tests unitaires ; car pour le projet sur lequel je travaille, la chaine de lancement de l'application ne permet pas de lancer les process avec valgrind (no comment).
Spoiler : Dans la rubrique logiciel de gestion de conf le plus merdique, je donne la palme à cette boue de CM Synergy (continuus). Je pense que son IHM motif, des années 30, et buggé jusqu'à la moelle en ferait pâlir plus d'un. Certains le comparent parfois à ClearCase, mais sans avoir l'honneur de connaitre ce dernier, je suis sur qu'on ne peut pas dépasser la médiocrité de CM, ce serait inhumain. |
Marsh Posté le 11-04-2007 à 08:12:34
kadreg a écrit : chouette, tout ce que je doit utiliser au taf' |
M'étonne pas. Dans le militaire, ils aiment bien le style char d'assaut pour écraser la mouche. Surtout qu'au final, c'est l'état qui paye. Syndrome du "plus c'est cher, mieux c'est".
Enfin l'avantage avec Clearcase, d'après mon expérience, c'est qu'une fois par mois à peu près, le serveur de vobs/vues/licences est en carafe (de préférence le lundi matin), ce qui permet à tout le monde de glander à la salle café à bon compte (dans le cas des vues dynamiques).
Marsh Posté le 11-04-2007 à 08:13:44
raté, c'était hier mais bon, ça compte pareil
Marsh Posté le 11-04-2007 à 08:19:58
Ah ben peut-être que chez vous la fréquence est plus élevée.
Marsh Posté le 15-04-2007 à 12:04:21
++fab a écrit : Dans la rubrique logiciel de gestion de conf le plus merdique, je donne la palme à cette boue de CM Synergy (continuus). Je pense que son IHM motif, des années 30, et buggé jusqu'à la moelle en ferait pâlir plus d'un. Certains le comparent parfois à ClearCase, mais sans avoir l'honneur de connaitre ce dernier, je suis sur qu'on ne peut pas dépasser la médiocrité de CM, ce serait inhumain. |
Faut vraiment que les types qui choisissent ce genre d'outil aiment la vaseline ou que le vendeur du CMS leur offre discrètement des vacances aux Caraïbes, parce qu'au prix de la licence...
"Prices negotiable with salesman. Server is typically roughly 20,000 British Pounds. Clients are 4,000 British Pounds. Per-year costs of 18% of original."
Marsh Posté le 15-04-2007 à 12:10:47
mon premier rebase avec clearcase (un équivalent du cvs update pour ceux qui suivent pas)
1h30 pour y arriver
Marsh Posté le 15-04-2007 à 12:17:20
ReplyMarsh Posté le 15-04-2007 à 13:52:46
kadreg a écrit : mon premier rebase avec clearcase (un équivalent du cvs update pour ceux qui suivent pas) 1h30 pour y arriver |
Bah, c'est le temps moyen consacré à chaque opération non triviale avec CC.
verdoux a écrit : Nous on utilise les vues dynamiques avec Clearcase, ça marche très bien. |
Ca marche, oui. Mais d'après mon expérience (de quelques années) l'avantage, si avantage il y a, est au final assez marginal dans la plupart des cas. Ok, ça permet de récupérer une config presque instantanément (si on ne se plante pas dans le fichier de config spec). C'est pratique quand on travaille sur 2 patchs en même temps sur un gros projet de ~10 000 fichiers. Et c'est d'autant plus crucial que CC est vraiment lent, même à coté de CVS.
Mais le pb, c'est que ce gain de temps ne compense absolument pas la lenteur des builds de Clearmake. La puissance des serveurs et la qualité du réseau sont critiques pour le confort du travail car ils font office de goulot d'étranglement. Le pire, c'est quand il y a une panne serveur ou réseau (ce qui arrive régulièrement): en vue dynamique, comme le source n'est pas en local, on ne peut plus bosser du tout.
Au final, quand on pèse les avantages et les inconvénients, je trouve qu'en dev, on reste bien plus productif en snapshot (pas besoin du serveur pour builder). En vérité, je trouve que sauf en ce qui concerne le branchement et le merge, on est plus productif avec CVS qu'avec CC (et je ne suis pas le seul). Ma conclusion est que les vues dynamiques peuvent être pratiques en maintenance/correction de bogues, mais sont plutôt une perte de temps en développement, où l'on ne change pas de config tous les jours, mais où on builde plusieurs fois par jour.
Or, l'avantage procuré par les vues dynamiques n'en est plus un par rapport à des SCM décentralisés avecs lequels le branchement est une opération instantanée et où récupérer un snapshot est extrêmement rapide (~20 Mo/seconde pour Mercurial). De plus, comme ils conservent l'historique de merge (ce que ne font ni CVS, ni SVN), leur capacité de merge est équivalente à celle de CC, voire supérieure pour darcs. Donc que reste-t'il comme avantage à CC ? Je ne vois guère que la GUI, boguée mais pratique. Face aux produits open source, c'est vraiment cher payé pour pas grand-chose.
En conclusion, CC est pour moi un produit ancien aux concepts élaborés, mais avec une implémentation d'une lourdeur trop élevée, et un sytème de licences flottantes lourdissime (le serveur de licences est sollicité à la moindre opération ! C'est d'ailleurs une cause supplémentaire de blocage. Vu le coût de la licence flottante, les boîtes en prennent un minimum, et parfois, ça peut bloquer). Bon, c'est pas SourceSafe non plus. CC ne fera pas perdre de données. Et à sa décharge, d'autres produits payants comme PVCS sont à mon avis encore pires.
kadreg a écrit : pas moi clearcase en mode UCM ... |
Jamais essayé UCM. Ca ressemble un peu à une tentative de faire plus ou moins des changesets, non ?
Marsh Posté le 15-04-2007 à 14:03:14
oui, ainsi que de lier les changements de source à des activités de dev pouvant être gérées via clearquest
Marsh Posté le 15-04-2007 à 14:22:23
Donc une tentative d'émuler les SCM open source.
Marsh Posté le 15-04-2007 à 14:33:21
Citation : I can't speak for ClearCase, but I worked for a small tech company that nearly destroyed its market share using Rational's "Unified Process." We didn't recover until we dumped all the weight and moved to something more XPish. Rational is where ClearCase originated. |
Tiens, au passage, la personne qui m'a contactée pour aller bosser sur ton projet a commencé par me demander si j'étais un expert CC (ils cherchaient un admin CC, visiblement). Je lui ai gentiment fait comprendre que ce poste ne m'intéressait pas.
Marsh Posté le 15-04-2007 à 14:54:30
el muchacho a écrit : |
ils l'ont trouvé
Marsh Posté le 17-04-2007 à 23:08:09
el muchacho a écrit : Faut vraiment que les types qui choisissent ce genre d'outil aiment la vaseline ou que le vendeur du CMS leur offre discrètement des vacances aux Caraïbes, parce qu'au prix de la licence... |
Hélas non, c'est sans vaseline. C'est une idée pour les prochains investissements.
el muchacho a écrit : "Prices negotiable with salesman. Server is typically roughly 20,000 British Pounds. Clients are 4,000 British Pounds. Per-year costs of 18% of original." |
Le coût matériel, humain, médical même -voire proctologique- est du même orde de grandeur.
Marsh Posté le 05-04-2007 à 18:31:02
Bonjour,
Je cherche un logiciel qui permette de detecter les fuites mémoires sur un soft développé en C++.
J'pense que l'un d'entre vous doit avoir ca sous le coude...