IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Optimiser la mémoire d'une app VB 2005


Sujet :

VB.NET

  1. #1
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut Optimiser la mémoire d'une app VB 2005
    Bonjour,

    Je fais des tests et j'essais d'optimiser une simple application en VB2005 NET.

    Elle contient une petite image png de 24ko avec un Label et un évènement Click

    C'est tout !

    Je suis stupéfaite de remarquer qu'elle prend pas moins de 30 mo en mémoire (
    15 en ram & 15 en swap)

    Esce normal que les applications VB NET sont aussi gourmandes avec peu de chose à l'intérieur ?

    MErci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 85
    Par défaut
    Slt oui les application .Net utilise beaucoup de memoire car elle fonctionne grace au framework c'edst comme pour java il faut le temps que la cafetiere chauffe

  3. #3
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    Les applications sans NET seraient alors plus avantageuses ?

    Et si j'enlève les Assemblies que j'ai pas besoin, ça prendra moins de RAM ?

    J'ai la vague impression que les machines virtuelles sont trop gourmande pour le peu que l'on demande

  4. #4
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    En plus l'executable ne fait que 124ko, je préfèrerai quil fasse un peu plus en échange de moins de RAM.

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    regarde à tout hasard vers ngen (fourni par microsoft) qui permet de faire un exe en code natif à partir d'un exe .net
    l'exe .net a besoin du framework et est compilé à la volée
    un exe en code natif n'a besoin de rien et est compilé une fois pour toute (donc gain de temps pour démarrer l'appli aussi)

    enfin c'est sur que la moindre appli avec .net prendra entre 10 et 30 Mo de ram minimum, mais en théorie c'est pas bien grave
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    un exe en code natif n'a besoin de rien et est compilé une fois pour toute (donc gain de temps pour démarrer l'appli aussi)
    Si mes souvenirs sont bons, ngen génère une image native du code MSIL contenu dans l'exécutable, et de l'exécutable uniquement, en pratique, cela signifie que tu évites l'étape de jitting au démarrage, le programme prendra la même place en mémoire, car cela ne change rien au fait que le programme est toujours basé sur la machine virtuelle .NET. Au final, ton exe va se lancer plus rapidement, mais il aura la même occupation mémoire.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  7. #7
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Il faut dire que ce n'est pas exponentiel avec la taille du projet; car si tu doubles tes objets ou form, il n'y aura que peu de changement en ram.
    Deplus et comme le dit sperot, que ca prenne 30Mo ou 50Mo, ce n'est reellement plus vraiment grave comme avant, vu les grosses quantites de ram disponible avec les machines.

  8. #8
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    Ha! oui merci

    j'ai trouvé ça:

    http://www.microsoft.com/france/msdn...ces_part2.mspx

    J'espère que je vais y arrivé, car malgré avoir acheté des livres pour m'initier je suis perdue pas par l'IDE de Visual, mais par le langage qui a évolué énormement.

    Je suis restée sur le basic de mon CPC464

    Là je suis perdue avec touts ces Sub, m'enfin je pense qu'avec le temps ça va venir et que je vais réaliser mes applications.

  9. #9
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    Zut ya pas encore le 3ème chapitres

  10. #10
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    J'ai beau cherché Ngen.exe je ne le trouve pas. Malgré le Framework2 d'installer.

    Et en plus ya pas d'option dans VB express semble til

  11. #11
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699

  12. #12
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par Diabless6 Voir le message
    J'ai beau cherché Ngen.exe je ne le trouve pas. Malgré le Framework2 d'installer.

    Et en plus ya pas d'option dans VB express semble til
    Chez moi, il se trouve ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  13. #13
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    Ha! oui merci.

    Mais je n'y arrive pas. Je suis entrain de relire les définitions de mon livre notamment sur l'assembly car ya des trucs qui méchappent.

    En faites, si je comprends bien mon applications Winmedia.exe que j'ai compilé est en code managé donc il faut les runtimes du Framework2 pour que je puisse la faire fonctionner.

    Si j'arrive à utiliser le NGEN, alors je pourrais convertir Winmedia.exe en Code non managé soit executable directement par le système d'exploitation sans avoir besoin de FrameWork2 ?

    Mais ya un truc que je pige pas, l'Assembly estce le résultat de la compilation de mon .exe via les class du framework ?

    Car en définition sur le bouquin j'ai: résultat de la compilation d'une bibliothèque de classes en un fichier avec une extension .dll

    Je pige pas là

  14. #14
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par Diabless6 Voir le message
    Ha! oui merci.

    Mais je n'y arrive pas. Je suis entrain de relire les définitions de mon livre notamment sur l'assembly car ya des trucs qui méchappent.

    En faites, si je comprends bien mon applications Winmedia.exe que j'ai compilé est en code managé donc il faut les runtimes du Framework2 pour que je puisse la faire fonctionner.

    Si j'arrive à utiliser le NGEN, alors je pourrais convertir Winmedia.exe en Code non managé soit executable directement par le système d'exploitation sans avoir besoin de FrameWork2 ?

    Mais ya un truc que je pige pas, l'Assembly estce le résultat de la compilation de mon .exe via les class du framework ?

    Car en définition sur le bouquin j'ai: résultat de la compilation d'une bibliothèque de classes en un fichier avec une extension .dll

    Je pige pas là

    ngen est qu'à moitié bien, l'exe a quand meme besoin du framework je crois
    un assembly est soit un exe soit une dll à mon avis
    et une bibliotheque de classe se compile en dll (un projet application se compile en exe)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  15. #15
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    oui mais moi je n'ai quune .exe avec dans le dossier un .pdb et un .xml

    alors je ne vois pas comment en fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>ngen install C:\Documents and Sett
    ings\Diana\Mes documents\Visual Studio 2005\Projects\WinMedia\WinMedia\bin\Relea
    se\winmedia.exe
    Microsoft (R) CLR Native Image Generator - Version 2.0.50727.42
    Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
     
    Usage: ngen <action> [args] [/nologo] [/silent] [/verbose]
           ngen /? or /help
    ma syntaxe est bonne ? non ?

  16. #16
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    ngen est qu'à moitié bien, l'exe a quand meme besoin du framework je crois
    Exact, c'est ce que je disais plus haut.
    Citation Envoyé par sperot51 Voir le message
    un assembly est soit un exe soit une dll à mon avis
    Un assembly est le fichier resultant de la compilation des fichiers sources en un fichier contenant le code MSIL, qu'il s'agisse d'un exécutable ou d'une bibliothèque de classes.
    Citation Envoyé par sperot51 Voir le message
    et une bibliotheque de classe se compile en dll (un projet application se compile en exe)
    En effet, l'extension DLL pour les assembly prête souvent à confusion, la différence entre un executable .NET et une bibliothèque de classes .NET est simplement que l'exécutable contient un point d'entrée, pas la bibliothèque. Sinon à quelques subtilités près, les deux fichiers ont une structure identique.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  17. #17
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par Diabless6 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>ngen install C:\Documents and Sett
    ings\Diana\Mes documents\Visual Studio 2005\Projects\WinMedia\WinMedia\bin\Relea
    se\winmedia.exe
    Microsoft (R) CLR Native Image Generator - Version 2.0.50727.42
    Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
    
    Usage: ngen <action> [args] [/nologo] [/silent] [/verbose]
           ngen /? or /help


    ma syntaxe est bonne ? non ?
    Non et il t'indique la syntaxe à utiliser. Utilise des " autours des fichiers dont le chemin contient des espaces.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  18. #18
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    Haa! donc en faite j'avais bien pigé en partie ouff

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>ngen install "C:\Documents and Set
    tings\Diana\Mes documents\Visual Studio 2005\Projects\WinMedia\WinMedia\bin\Rele
    ase\winmedia.exe"
    Microsoft (R) CLR Native Image Generator - Version 2.0.50727.42
    Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
    Installing assembly C:\Documents and Settings\Diana\Mes documents\Visual Studio
    2005\Projects\WinMedia\WinMedia\bin\Release\winmedia.exe
    Compiling 9 assemblies:
        Compiling assembly C:\Documents and Settings\Diana\Mes documents\Visual Stud
    io 2005\Projects\WinMedia\WinMedia\bin\Release\winmedia.exe ...
    WinMedia, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
        Compiling assembly System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral
    , PublicKeyToken=b77a5c561934e089 ...
    System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c
    561934e089
        Compiling assembly Microsoft.VisualC, Version=8.0.0.0, Culture=neutral, Publ
    icKeyToken=b03f5f7f11d50a3a ...
    Microsoft.VisualC, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d5
    0a3a
        Compiling assembly System.Data.OracleClient, Version=2.0.0.0, Culture=neutra
    l, PublicKeyToken=b77a5c561934e089 ...
    System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5
    c561934e089
        Compiling assembly System.ServiceProcess, Version=2.0.0.0, Culture=neutral,
    PublicKeyToken=b03f5f7f11d50a3a ...
    System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f
    11d50a3a
        Compiling assembly System.Configuration.Install, Version=2.0.0.0, Culture=ne
    utral, PublicKeyToken=b03f5f7f11d50a3a ...
    System.Configuration.Install, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b
    03f5f7f11d50a3a
        Compiling assembly System.Management, Version=2.0.0.0, Culture=neutral, Publ
    icKeyToken=b03f5f7f11d50a3a ...
    System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d5
    0a3a
        Compiling assembly Microsoft.JScript, Version=8.0.0.0, Culture=neutral, Publ
    icKeyToken=b03f5f7f11d50a3a ...
    Microsoft.JScript, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d5
    0a3a
        Compiling assembly Microsoft.Vsa, Version=8.0.0.0, Culture=neutral, PublicKe
    yToken=b03f5f7f11d50a3a ...
    Microsoft.Vsa, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    Je crois que ça a fonctionné, je vais voir ce que cela donne

  19. #19
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    Mouai, je pense que l'executable a été écrasé par la nouvelle version mais il est toujours aussi petit et je ne remarque pas bp de différence en consommation RAM

    Vu la taille du fichier 450ko il est claire a mon avis que ne framework reste necessaire.

    Donc en faite ce NGEN est un leurre car il ne fait pas vraiement une application non managée

    Alors moi qui voudrait réaliser un app qui scrute la consommation de RAM et l'optimise ben ça le fait pas du tout car déjà ce genre d'application prend peu de mémoire 5mo env là ça me fera tout de même 30mo

    C'est pas jojo je suis un peu déçue Je comprends pourquoi certain restent encore sur le VB6, un executable autonome et bien plus économique.

  20. #20
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    Ou a moins de changer le compilateur de l'IDE tout en utilisant le NET, ya borland qui le fait je crois ? Mais pas en VB hélas

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/05/2013, 12h49
  2. Réponses: 2
    Dernier message: 10/08/2004, 18h35
  3. [VB6] basculer vers une app. ouverte
    Par zazaraignée dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 04/06/2004, 16h26
  4. [Kylix] deployer une app. kylix3... PROBLEME!
    Par le_barbu dans le forum EDI
    Réponses: 2
    Dernier message: 16/12/2003, 21h53
  5. Problème mémoire avec une dll par chargement dynamique
    Par widze19 dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/12/2003, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo