Mon prog bouffe de la memoire

Signaler
Messages postés
132
Date d'inscription
dimanche 12 août 2001
Statut
Membre
Dernière intervention
17 octobre 2008
-
Messages postés
132
Date d'inscription
dimanche 12 août 2001
Statut
Membre
Dernière intervention
17 octobre 2008
-
Salut à ceux qui liront,

je débute tout juste en vb2005 (j'étais plus à l'aise sur vb6 :) , j'ai refait entierement un prog que j'avais en vb6 > en vb2005, j'ai fait "générer" et l'exe qui resulte fait 250ko
il n'y a pas de boucle bizarre dedans et pourtant quand je vais dans le gestionnaire des tâches il met que mon prog utilise 20 000 ko de memoire (??) blurps

y'a t'il une raison que je ne connais pas ?

thanks

34 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

Suivant la nature de ton prog, 20 000Ko ne me choque pas.
Ce qui compte, c'est que lors de l'exécution de celui-ci, il soit rapide.

As-tu une grande différence avec ton fichier version vb6 ?

++
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Le plus important c'est qu'elle n'augmente pas constamment en cours de fonctionnement, ça traduirait une fuite de mémoire. Si elle est stable, c'est pas vraiment choquant, tout dépend de ce que fait ton programme en fait.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
132
Date d'inscription
dimanche 12 août 2001
Statut
Membre
Dernière intervention
17 octobre 2008

oui celui en vb6 prenait 4600ko


ce qui m'étonne c'est que je n'ai mis aucune routine qui tourne en tache de fond, le programme à l'arrêt est à 20000


ça m'embête un peu qd même
Messages postés
132
Date d'inscription
dimanche 12 août 2001
Statut
Membre
Dernière intervention
17 octobre 2008

ben justement il ne fait pas grand chose, pour résumer y'a une listbox a droite, et des textxbox a gauche, qd on clique dans la list ça affiche des info dans les textbox, y'a vraiment pas de quoi prendre 20000k de mem, non ?

(la taille mem reste constante pour info)
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
N'oublie pas qu'en .net, il tourne sur le framework. Je ne sais pas si le framework est comptabilisé dans la mémoire de chaque exe, à priori j'aurais dis non. Mais comme il fait une vingtaine de Mo, ça correspondrait.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
eh eh, engagez-vous qui disais !

Avec vb, un petit executable "hello world" prenait déjà pas mal de mémoire car il devait lancer la machine virtuelle vb pour marcher.

Maintenant, avec .net, il faut carrément lancer tout le framework pour que ca fonctionne ! De la même façon qu'un jar en Java, un exe vb.net prend peu de place sur le disque, mais énormément en mémoire !
C'est l'une des raisons qui m'ont poussé à ne pas migrer vers vb.net : déjà que je le trouve plus lent en exécution, il prend bien plus de ressources !

20 Mo me paraît être une taille "correcte" pour un exe vb.net 2005 ! Par contre, ce qui me paraît pas très correct, c'est cà : "20 000Ko ne me choque pas", 20 Mo, ca en fait des octets occupés en mémoire tout de même !
Enfin bon, je sais bien que .net c'est le futur... comme à l'époque du lancement d'ADO contre DAO ou DAO était plus rapide, et surtout bien moins gourmand en mémoire qu'ADO !
Les choses évoluent, les machines aussi, et nos habitudes de programmation doivent elles aussi évoluer. Mais quite à changer de langage et ainsi bouffer des ressources pour rien, autant passer à Java (n'est-ce pas BruNews ).
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
salut,
un label sur une form en dotnet, sans code, çà ne fait pas dans les 9Mo??
il me semble.... 

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
132
Date d'inscription
dimanche 12 août 2001
Statut
Membre
Dernière intervention
17 octobre 2008

Oui, j'ai mis un moment avant de me lancer dans .net car en tant que débutant c'est encore plus dur de changer de façon de penser,( tient je remarque que vbexpress prend 100000k de mem, alors pourquoi s'affoler ?  )
on est un peu mené par le bout du nez par microsoft et la société de consommation, si ça se trouve des progs en vb6 ne tourneront plus dans quelques temps sur des futures plateformes, quand je vois que entre vb2003 et 2005 il y'a déjà des différences c'est pas très encourageant.
enfin bref !

merci pour vos réponses

@+
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
sans lancer encore un débat... la seule raison pour laquelle je ne soutiens pas DarkSidious est que Java ne tourne pas ou très mal sur mon PC. mais c'est évident, on ne peut pas avoir confiance en un prog de dev (voire OS ) qui change tous les 2ans et qui est incompatible avec sa précédente version...

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
conclusion quand même : beh c'est normal
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Eh eh, Java prend petit à petit un peu plus d'ampleur, et gagne en rapidité.
Le seul truc, c'est qu'il est si facile de coder avec les pieds avec VB que lorsqu'on passe à Java, on fait très vite du code qui marche lentement ! (par exemple, en java, il faut créer un thread pour chaque création de fenêtre, ou pour chaque événement de contrôles pour éviter de bloquer inutilement le thread principal), heureusement tout de même que Java facilite énormément les choses !

Mais pour revenir au petit débat : évoluer ou pas en .net, perso, le choix a été vite fait : en java, il garde la compatibilité avec les anciennes versions, et ce, depuis le début ! (ca en fait des années !). Du coup, le JDK se retrouve avec pas mal de fonctions "dépréciées", mais au moins, les progs développés il y a 10 ans tournent toujours aussi bien, contrairement aux progs développés avec VB par exemple !

Java est lent, et bouffe pleins de ressources, certes, mais .net, c'est guère mieux je trouve ! Je sais bien que j'ai aucune chance de devenir MVP en disant cà, mais quitte à changer de langage de prog, pourquoi investir du temps à apprendre un langage qui de toute façon changera très certainement d'ici la prochaine version de windows ? (je parle pas de longhorn "vista" bien sûr puisque .net 2 (et 3) est fait pour lui, mais du prochain vienna).

Sur ce, je vous laisse méditer
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
C
tout vu
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Humm je rajoute ma sauce :

je n'ai pas dit " 20 000Ko ne me choque pas." mais
Suivant la nature de ton prog, 20 000Ko ne me choque pas.
C'est beaucoup, mais pas choquant

Je connais des progs en vb6 qui en utilisent autant !

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Lol, oui sauf qu'en vb6 il faut un sacré prog (s'il ne contient pas d'images !) pour atteindre les 20 Mo de mémoire (bien que je travaille sur un logiciel qui les atteint actuellement).

Ce qui m'a choqué moi, c'est le "c'est pas choquant" !
Il y a 5-6 ans de cà, 20 Mo de mémoire vive pour un prog, c'était quasi-insensé !
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
"Il y a 5-6 ans de cà, 20 Mo de mémoire vive pour un prog, c'était quasi-insensé ! "
lol
ça me rappelle le blog avec les caractéristiques du premier PC

"il faut un sacré prog (s'il ne contient pas d'images !) pour atteindre les 20 Mo de mémoire"
C'est vrai, quelques animations, des images et l'appli prend tout de suite de l'ampleur !
Je suis surtout resté sur le fait que c'était faisable, mais effectivement rare (surtout pour des texbox et listbox)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
25
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
31 août 2006

Salut à tous !

Pas vraiment d'accord avec ce qui s'est dit plus haut. Je ne suis pas un expert, mais je développe depuis environ 20 ans en amateur et 2 ans en professionnel. J'ai connu de multiples plateformes (Oric Atmos, Amiga divers et variés, et PC). Quant aux languages, de l'assembleur 68000 à .NET, j'ai navigué (divers BASIC, C, C++, PhP, Actionscript, Javascript, VBScript, etc...).
loin de moi l'idée de vouloir me vanter (j'aurai toujours des milliers de choses à apprendre et c'est tant mieux), mais c'est simplement pour dire que je ne suis plus un simple débutant.

Et bien pour la première fois je rencontre un language et son environnement de développement qui me comble (presque) totalement.

Alors oui, .NET est gourmand en mémoire, mais c'est son seul vrai défaut. Faudrait pas oublier ses qualités :
- Vitesse d'exécution exceptionnelle (j'ai même créé un prog d'affichage de cartes vectorielles à partir de données AutoCAD, et ça ne rame pas, même avec + de 65000 vecteurs !)
- Vrais languages orientés objet.
- Stabilité : Quand ça plante, c'est la faute du développeur.
- Clarté et cohérence de la conception : namespaces évidents facilitant la recherche des fonctionnalités, pertinence des classes proposées.
- Puissance de la gestion des erreurs : avec les aides et les exceptions, difficile de ne pas trouver l'origine des erreurs.
- Interopérabilité des languages : .NET c'est une plateforme, pas un seul language (VB).
- Gestion automatisée de la mémoire avec le Garbage Collector. Quand on a connu le C++ ou l'assembleur, c'est un bonheur.
- Diverses fonctionalités TRES évoluées comme la facilité de création (et de déploiement) des controles utilisateurs, le déploiement des applications elles-mêmes, la gestion du versionning, le multithreading à la portée de tous, les communications réseau, etc...

Bref, vous l'aurez compris, j'adore ! La mémoire est un réel problème, et c'est tout ce qui peut encore à mes yeux pousser quelqu'un à préférer C++ (avec la puissance absolue à l'exécution). C'est le prix à payer pour le reste, et je trouve ça en fait assez peu cher payé. Pour info, chez moi, ton prog ne prend "que" 15 mo.

Voilà mon avis, je trouve un peu facile et gratuit de descendre si facilement ce qui est une réelle évolution et pas seulement un gadget commercial.

Quant à JAVA, j'ai essayé et franchement, ça m'a gonflé ! Je n'aime ni la syntaxe, ni la philosophie générale. Faudrait peut-être que je persévère...
Messages postés
25
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
31 août 2006

Désolé pour l'absence de formattage : ça ne marche pas pour moi.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
"ses qualités : - Vitesse d'exécution exceptionnelle"

Tu es un des rares à le trouvé rapide, mais au fait quel langage ?

Je peux que en gros 80% des personnes avec qui j'ai pu discuter de VB.NET (aussi bien 2003 que 2005), trouvent les programmes créés avec ces langages nettement moins rapide qu'en VB6. C'est un constat assez général que l'on trouve sur de nombreux forum.

Pour le reste, je résumerais en disant heureusement que c'est une évolution sinon à quoi ça servirait de faire une nouvelle version tout les 2 ans.
Mais comme toute évolution, elle faut qu'elle réponde à un besoin réel pour etre justifiée. Dans le cas présent, j'ai l'impression que Microsoft veut nous imposé l'outil dans l'espoir que le besoin naitra de l'utilisation de l'outil.
VB6 a encore quelques beaux jours devant lui.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
132
Date d'inscription
dimanche 12 août 2001
Statut
Membre
Dernière intervention
17 octobre 2008

ce qui m'embêtait juste au départ c'est ces 20mo, car je vais mettre ce prog en freeware et je pense aux utilisateurs qui ont des petites config pc, et qui ne voudront pas télécharger le framework 2.0 car ils sont en modem 56k
bah tant pis pour eux
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Non je dirais pas que vb6 a de beaux jours devant lui (loin de là même) car les entreprises migrent à .net petit à petit.
C'est un constat : microsoft est leader sur le marché des OS, et hormis .net, bientôt, y'aura plus énormément de concurrents sérieux pour faire du développement rapide pour windows (borland vendant delphi).
Du coup, ils sont libres d'imposer ce qu'ils veulent : Sun ayant un train de retard niveau performance avec Java (bien qu'ils rattrapent petit à petit leur retard au fil des versions).

Mais ce qui est bien avec Java, c'est l'esprit Open Source : on trouve beaucoup de source sur le net en Java qui sont d'un excellent niveau (comparé au niveau des sources de vb qu'on trouve partout, ca prête à sourire) !
De plus, Sun travaille plus pour leurs clients que pour eux, comparé à M$ dont le but est de sortir des versions extrêmement chères tout les 2-3 ans, et pousser leurs clients à racheter une version. Sun au moins, il te donne l'IDE ! Ils te le vendent pas 1500 ? ! (bien qu'il soit bien moins complet, netbeans n'a pas à rougir face à visual studio pour le confort de développement). Et puis il existe beaucoup d'outils open source qui t'aident à programmer, beaucoup de librairies gratuites.