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

Delphi Discussion :

compilation paquets d'execution et occupation mémoire


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de ALEX77
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 138
    Par défaut compilation paquets d'execution et occupation mémoire
    Bonjour

    J'ai créé un paquet d'exécution "plugin.bpl" qui dans la clause requires contient aussi d'autres paquets d'exécution (VCL Delphi, JEDI, DevExpress, etc...). J'en ai un autre "common.bpl" qui est le paquet principal de mon application et qui en gros partage des fonctions et variables globales entre l'application et les plugs-ins.

    Ma question est la suivante : puis-je compiler "plugin.bpl" mais en faisant en sorte que certains paquets dans sa clause requires soit intégrés dans mon "plugin.bpl" de telle sorte que je n'ai pas besoin de les fournir avec mon application. Je souhaite fournir uniquement les paquets VCL de delphi, common.bpl et plugin.bpl.

    Quelqu'un me t-il m'éclairer là dessus car apparament tout paquet d'exécution qui fait appel à d'autres paquets d'execution doit impérativement les trouver son chargement.

  2. #2
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Citation Envoyé par ALEX77
    puis-je compiler "plugin.bpl" mais en faisant en sorte que certains paquets dans sa clause requires soit intégrés dans mon "plugin.bpl" de telle sorte que je n'ai pas besoin de les fournir avec mon application.
    Non, tu ne peux pas.

    Tu es obligé, pour distribuer un paquet d'exécution, de distribuer avec tous les paquets d'exécutions dont il dépend, et cela récursivement.

    C'est intrinsèquement nécessaire au bon fonctionnement des paquets et du partage des RTTI (qui est la force des paquets).
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  3. #3
    Membre confirmé Avatar de ALEX77
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 138
    Par défaut
    ah bah zut alors

    Merci sjrd pour ta réponse rapide

    Si je demande ça c'est parce qu'en fait voilà la form principale de mon application contient des composants DevExpress : une barre de menu, un TreeList, une barre d'état et une barre de navigation et lorsque je l'exécute, dans le gestionnaire de programme je suis à 17 Mo ! rien que ça. Je rappelle que l'application est contruiste avec le paquet d'execution common.bpl que se partage l'application et les plugins.

    Lorsque je minimize mon application et que je la restore, la mémoire utilisée passe à 2 ou 3 mo. On est donc passé de 17 à 2 Mo ?

    Quelqu'un (ou toi sjrd) peut me dire qu'est-ce qui se passe exactement pour qu'on ai autant de mémoire occupée dès le démarrage ? Peut-on en libérer de la mémoire pour passer à 2 ou 3 mo comme lorsqu'on minimize l'application mais sans avoir à la minimizer ?

    Comme mon projet va etre essentiellement construit autour de plugins tournant autour d'un paquet d'execution principal, cela est déterminant pour la suite du développement.

    Merci pour vos réponses

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    409
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 409
    Par défaut
    Citation Envoyé par ALEX77
    ah bah zut alors
    Peut-on en libérer de la mémoire pour passer à 2 ou 3 mo comme lorsqu'on minimize l'application mais sans avoir à la minimizer ?
    avec cette procédure tu as l'équivalent en terme de libération mémoire de la minimisation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure FreeMemory;
    var
      MainHandle : THandle;
    begin
      MainHandle := OpenProcess(PROCESS_ALL_ACCESS, FALSE,
    GetCurrentProcessID);
     try
      SetProcessWorkingSetSize(MainHandle, $FFFFFFFF, $FFFFFFFF);
     finally
      CloseHandle(MainHandle);
     end;
    end;

  5. #5
    Membre confirmé Avatar de ALEX77
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 138
    Par défaut
    Merci exoseven pour ton code je l'ai testé et ça a fonctionné !

    Mais un autre problème persiste, lorsque j'execute mon application Delphi se bloque. Obligé de le killer. Par contre j'arrive à exécuter mon application sans problème directement par l'exécutable.

    J'ai fait des recherches sur Google avec plusieurs mots clefs "delphi freeze packages runtimes" et je n'ai rien trouvé de concret.

    S'agit-il d'un beug lié à Delphi ou bien à autre chose ?

  6. #6
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Il m'arrive d'avoir ce problème, en effet, avec Delphi 2005 update 3, et en travaillant avec des paquets d'exécution.

    Il semble que Delphi se confonde dans ses DCU de débogage. Je parviens parfois à m'en tirer en reconstruisant tous les projets de mon groupe de projet. Mais parfois c'est aléatoire, et ça finit par refonctionner au bout d'un moment.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

Discussions similaires

  1. [Ocaml] Compilation d'un executable windows avec Ocaml
    Par Diegoooowwww dans le forum Caml
    Réponses: 19
    Dernier message: 02/03/2009, 13h21
  2. Paquetage bien compilé mais non executé.
    Par Flodelarab dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 25/12/2008, 20h23
  3. configure: error: C compiler cannot create executables
    Par vincent_roye dans le forum Réseau
    Réponses: 9
    Dernier message: 01/08/2008, 07h48
  4. Réponses: 8
    Dernier message: 07/02/2007, 15h23
  5. Executable sans les paquets d'executions
    Par schneed dans le forum C++Builder
    Réponses: 5
    Dernier message: 21/07/2006, 14h22

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