none
Une question aux Ingénieurs Microsoft RRS feed

  • Question

  • Bonjour,

    Alors je m'initie au devellopement logiciel, et je suis effarée de comparer des applications NET (managées) avec des applications en natif(non managées).

    Déjà en NET c pas top niveau rapidité ça rappel bien la machine virtuel de  JAVA .

    Mais moi, le problème principal qui m'interpèle, c'est la quantité enorme de RAM prise par les applications NET.
    Une simple application NET prends pas moins de 30Mo de RAM or, on divise par 2 en code natif.

    A savoir que pour 10 applications NET on aura une moyenne de 30*10) =300 Mo de RAM et pour les mêmes applications en codes natif, on divisera par 2 la quantité de mémoire utilisée soit 150Mo pour 10 applications en natif.

    Pour moi, c'est pas une évolution  .

    Ce n'est pas tout le monde qui a des machines puissantes et avec bp de RAM, deplus moins le swap sert mieux c'est.

    Je n'ai pas fait tout le tours des problèmes, mais apparement bp l'on fait et on de se faite gardé leur précieux VisualBasic 6 ce qui est compréhensible.

    Alors moi, j'aimerai poser une question aux dévellopeurs de Microsoft, j'aimerai savoir si il y aura une amélioration sur le NET qui malgré une simplicité certaine, reste très lourds.






    jeudi 30 août 2007 12:26

Toutes les réponses

  • mouaip... en même temps... on peut faire des applis .net qui ne consomment que quelques Mo... (3 ou 4Mo)

     

    La rapidité... .net n'est pas si lent que ça... j'ai cru entendre 5% mois rapide que C++. Avec l'habitude, on peut faire des choses très propres, très rapides et très légères.

     

    Sébastien

    jeudi 30 août 2007 12:35
  • J'aimerais savoir ce que vous appelez "simple application .NET" ?

    Il est difficile de mesurer en mémoire une application .NET, car cela dépend de la quantité libre de votre machine et du GC qui agit en conséquence...

     

    D'expérience (car je l'ai vécu), ceux qui restent en VB6 sont des personnes qui ont développées des applications dont il est difficile de migrer à .NET à cause de la nouvelle plate-forme de développement...

    Sous .NET tout est OO, ce n'est donc pas aussi simple de migrer une application de VB6 vers .NET...

    La nouvelle interface ADO .NET requiert un changement important dans la façon de programmer les accès aux données...

    ...etc

     

    J'avoue que je n'est pas utilisé l'assitant de migration de VS pour convertir les projets VB6, mais j'ai reconstruit avec mon équipe de A à Z ces nouvelles applications sous .NET.

     

    J'ai migré de nombreuses applications de VB6 vers .NET, et je ne regrette pas de l'avoir fait ! Il n'y a que des avantages !

     

    Cordialement

     

    jeudi 30 août 2007 14:30
    Modérateur
  •  

    De plus, ce n'est pas parce que l'application prend 50 Mo de mémoire qu'elle utilise ces 50 Mo.

     

    L'explication est ici: http://faqcsharp.developpez.com/?page=syst#syst_gc

     

     

    A+

    jeudi 30 août 2007 16:02
  •  sebmafate A écrit:

    mouaip... en même temps... on peut faire des applis .net qui ne consomment que quelques Mo... (3 ou 4Mo)

     

    La rapidité... .net n'est pas si lent que ça... j'ai cru entendre 5% mois rapide que C++. Avec l'habitude, on peut faire des choses très propres, très rapides et très légères.

     

    Sébastien

     

    Bonsoir,

     

    Merci pour le lien ceci dit je nai pas trouvé de réponses à mes questions Wink

     

    Ensuite faudra m'expliquer comment faire une simple application qui ne prends que 3-5 mo car une simple Form compilée prends pas moins de 30 mo !

     

     

    jeudi 30 août 2007 19:29
  •  Gilles TOURREAU A écrit:

    J'aimerais savoir ce que vous appelez "simple application .NET" ?

     

    Bonsoir,

     

    Quand je parle d'une simple application, je parle d'une simple form sans composants vide et compilée puis executée.

     

    Oui c'est peut etre plus simple de faire une application en NET ça évite de faire des Wrappers si j'ai bien lu pour pouvoir utiliser les Assemblies ou Class du NET.

     

    Mais personnellement j'ai quelques créations en tête, et la 1ère et juste une petite application visant à donner la quantité de ram dans le systray. Pour moi, une telle application doit être toute petite après je l'améliorerais avec mes connaissances acquises.

     

     

     

     

    jeudi 30 août 2007 19:38
  •  Thomas LEBRUN A écrit:

     

    De plus, ce n'est pas parce que l'application prend 50 Mo de mémoire qu'elle utilise ces 50 Mo.

     

    L'explication est ici: http://faqcsharp.developpez.com/?page=syst#syst_gc

     

     

    A+

     

    Bonsoir,

    ------------------------------------------------------------------------------------------------------------RAM--------SWAP----------

    Excusez moi : MDR; Quand le gestionnaire de tâche me dit : IEplorer.exe  73780 Ko 80240 Ko

     

    Je comprends qu'il y a effectivement 74 mo en RAM et 80 Mo sur le disque virtuellement.

     

    Après qu'une routine dans 154 mo ne soit pas utilisée ça ne changera pas la taille de l'application certes.

     

    Oui l'article semble interressant : Le Garbage Collector joue réellement sur la taille ou fait un transfert sur le swap ?

     

    Si en VB je fais appel à cette class

    System.GC.Collect()
    dès le début de l'application et pour toute la durée d'exécution, vais-je pouvoir réduire significativement la taille de l'application en ram ?
    Je pense certes que ce n'est pas le principe, mais ça améliore ma conception et comme je dis ya pas mieux que des essaies pour évaluer l'impacte.
     
    Mais le fonctionnement est très simplifié ici, si l'application fonctionne en avant plan, je suppose qu'il y a un minimum de ram que doit disposer l'application pour son bon fonctionnement avant que le Garbage Collector n'attribue dautres ressources aux autres applications.
     
     
    
    

     

     

     

     

     

     

     

     

    jeudi 30 août 2007 20:01
  • Pour vous rendre compte qu'il est difficile de mesurer exactement la quantité en mémoire occupée par une application simple .NET, je vous conseille de télécharger Virtual PC (Gratuit) et de tester votre programme sur une configuration XP avec à chaque fois une quantité de RAM différente (64 - 128 - 256...etc)...

     

    Normalement vous n'avez pas à faire appel à GC.Collect() toute la libération se fait de façon automatique et optimisé en fonction d'espace mémoire disponible...

     

    Cordialement

    vendredi 31 août 2007 09:28
    Modérateur
  • ah oui d'accord, mais je trouve se fonctionnement un peu étrange. Ceci dit je vais faire des essais et voir le comportement.

     

    Merci bien Smile

     

    vendredi 31 août 2007 10:19