s@ldon
Messages postés140Date d'inscriptionsamedi 1 novembre 2003StatutMembreDernière intervention30 septembre 2009
-
20 juil. 2006 à 14:07
s@ldon
Messages postés140Date d'inscriptionsamedi 1 novembre 2003StatutMembreDernière intervention30 septembre 2009
-
21 déc. 2006 à 21:50
Bonjour a tous,
j'ai fait une petite application affichant un graphique. Mais lorsque je le lance, le programme me bouffe toutes les ressources sous win98 alors que sous xp, la mémoire est parfaitement gérée.
Je fais un affichage toutes les 50 ms. J'utilise les primitives suivantes :
TextOut,Rectangle, MoveToEx,LineTo.
Pourquoi cela marche-t-il nikel sous XP et pas sous win98 ????
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 21 juil. 2006 à 09:57
Le problème vient du fait que la partie kernel de chaque processus est partagée par tous les processus et que toute intervention sur les objets kernel est très lente.
La disparition de ces antiquités ne sera regrettée par personne.
vinc1008881
Messages postés257Date d'inscriptiondimanche 22 août 2004StatutMembreDernière intervention29 septembre 20103 20 juil. 2006 à 14:13
Je sais pas c'est dur à dire mais comme cela marche sur XP ton code semble etre ok, donc c'est peut être un bug de window$ 98, ou un probleme de compatibilité (fonction de windows 98 != fonction de XP ???)
s@ldon
Messages postés140Date d'inscriptionsamedi 1 novembre 2003StatutMembreDernière intervention30 septembre 20093 20 juil. 2006 à 14:21
ouais, c'est ce que je pensais. Je pensais aussi au fait le Win98 ne supporte peut-être pas les timers à 50ms. Je suis en train de tester avec un timer d'affichage à 1000 ms. Mais en 10 minutes, j'ai perdu 12% de RAM (250 MO au total).
Là, sous XP, sa fait 20 minutes qu'il tourne avec un affichage toutes les 50 ms, et pas un pet' de mémoire perdu (processus à 1300 KO).
gamemonde
Messages postés336Date d'inscriptionsamedi 9 août 2003StatutMembreDernière intervention 9 juillet 20112 20 juil. 2006 à 14:37
peux etre que ces fonctions ne se desalloue pas complement avec 98 je sais pas ca fais longtemps car il arrive souvent que des processus prenne du temps avant de vraiment avoir perdu toute la memoire car j'utilise ces fonctions sous xp et meme apres une heure apres une actualisation du processus j'ai 0 de fuite de memoire est tu sur de bien detruires tes objects car il me semble quela compatibilite est ok
Vous n’avez pas trouvé la réponse que vous recherchez ?
s@ldon
Messages postés140Date d'inscriptionsamedi 1 novembre 2003StatutMembreDernière intervention30 septembre 20093 20 juil. 2006 à 15:44
Je viens de tester un programme d'affichage d'une montre avec le double buffering (cppfrance_source_11153) et sous 98, meme pb, au bout de quelques minutes (voire secondes), la mémoire était saturée. L'affichage ne se faisait plus correctement. Je pense que ça vient du système lui-même.
Il doit y avoir des fonctions particulières à utiliser sous 98.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 20 juil. 2006 à 15:50
En effet, c'est fort probable que XP gère mieu la mémoire et les process que 98 et empêche la saturation. Il ce peut aussi que ce soi la GDI de 98 qui ai un problème de compatibilité.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 20 juil. 2006 à 15:54
Ah autre chose. Utilise tu VC2005? Si oui, tu a une option qui te permet de rendre ton programme "compatible" avec 98. Je l'ai jamais essayé cependant. C'est dans les propriété de ton projet->linker->optimisation.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 20 juil. 2006 à 16:28
Tu as testé sur Win 3.xxx ???
Allons soyons sérieux, il ne faut absolument plus perdre une seconde à chercher une compatibilité avec des systèmes totalement obsolètes, tout ce qui est < Win2K doit être abandonné.
s@ldon
Messages postés140Date d'inscriptionsamedi 1 novembre 2003StatutMembreDernière intervention30 septembre 20093 21 juil. 2006 à 08:20
Je viens de comprendre. En fait, les fonctions SelectObject et DeleteObject sont très mal gérées sous 98. Je créais mes HPEN à chaque affichage. Mais en ne le faisant qu'une seule fois au début du programme, il n'y a plus de fuite mémoire.
s@ldon
Messages postés140Date d'inscriptionsamedi 1 novembre 2003StatutMembreDernière intervention30 septembre 20093 21 déc. 2006 à 21:50
Ouais, ça c'est sûr. Bref, merci à tous, j'ai résolu mon problème, même si ce dernier ne venait pas de moi.
Effectivement, un vieux Windows ne sera regretté par personne, mais le nouveau fait déjà parler beaucoup de lui ici.
Une nouveauté déjà bien regrettée par certains...