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

Langage Delphi Discussion :

Gestion de la mémoire ?


Sujet :

Langage Delphi

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut Gestion de la mémoire ?
    Bonjour,
    Veuillez m'excuser si le titre n'a peut être rien à voir avec mon problème.

    J'ai développé un logiciel composé de deux programmes(un prog principal et un autre secondaire) qui communiquent entre eux par l'intermédiaire des Messages Windows. (Borland Delphi 7)

    Les deux programmes sont assez lourds au niveau du nombre de fiches.
    Par souci de performance pour l'utilisation, je crée toutes ses fiches à l'exécution des deux programmes.

    Lorsque j'exécute le programme principal, il exécute à son tour le second programme et attend une réponse de celui-ci (par message inter-processus) afin de terminer le chargement global du logiciel.

    J'ai pu remarquer que sur certaine config, il s'exécute plus rapidement que d'autres. Pourquoi ? Je ne le sais pas. Ce n'est, en tout cas, pas une question de meilleur configuration matériel ! Ex : Exécution super rapide (2-3secondes) sur un AMD 1.4 Ghz 512 DDR par rapport à un Intel HP 3 Ghz 1 Go DDR (10 Secondes au chargement). Même si j'enleve le Hyper Threading, cela ne change rien. Il m'a été rapporter que le temps de chargement peut atteindre + de 20 secondes sur une bon configuration matériel. Donc....

    Donc, ma question est la suivante : Vaut il mieux créer toutes les fiches à l'initialisation des programmes où les créer lorsqu'elles vont être utilisées (Perte de temps lors de l'utilisation non ? ) ?

    Ps : Je remarque aussi que le temps de l'exécution peut augmenter lorsque il y a trop de process en exécution. Enfin je crois

    Je vous remercie pour toutes informations susceptibles de m'aider.

  2. #2
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    En fait, s'il y a beaucoup de fiches, il vaut mieux les créer à l'exécution, mais si du coup, tu considères que la perte de temps à l'exec est trop grande, fait le à l'initialisation en ajoutant un SplashForm.

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Citation Envoyé par MD Software
    En fait, s'il y a beaucoup de fiches, il vaut mieux les créer à l'exécution, mais si du coup, tu considères que la perte de temps à l'exec est trop grande, fait le à l'initialisation en ajoutant un SplashForm.
    C'est ce que j'ai fait.

    J'ai oublié aussi de signaler que si le chargement dur plus de 30 secondes, j'affiche un message disant que le programme n'a pu charger un module.
    Pcq il se peut que se soit en fait un problème de message (L'envoi d'un message de l'application secondaire à l'application principale afin de lui dire que tout est chargé). Est - il possible que dans certain cas, le message (envoyé par PostMessage) ne soit pas réceptionné ?

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    combien as-tu de fiches exactement?
    Et Dans les Oncreate de celles-ci, Est-ce qu'il y a des traitements particulièrement long?

  5. #5
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par portu
    Est - il possible que dans certain cas, le message (envoyé par PostMessage) ne soit pas réceptionné ?
    Tu fais des Application.ProcessMessages de temps en temps?

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Citation Envoyé par Pedro204
    Salut
    combien as-tu de fiches exactement?
    Et Dans les Oncreate de celles-ci, Est-ce qu'il y a des traitements particulièrement long?
    En fait, c'est surtout dans le programme secondaire que le chargement est long. Il n'y a pas forcément beaucoup de fiches (une bonne vingtaine). Elles possèdent pratiquement toutes des Reports (QuickReport) bien chargées en composants.

    Tu fais des Application.ProcessMessages de temps en temps?
    Pendant la création des fiches ? non ! Devrais-je en mettre après chaque création de celles-ci ?

  7. #7
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Ben si tu veux pouvoir intercepter les messages entre tes applications, il vaut mieux non?

  8. #8
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Citation Envoyé par Pedro204
    Ben si tu veux pouvoir intercepter les messages entre tes applications, il vaut mieux non?
    Bein, ca marche bien sans. C'est seulement un client qui a des problème.

Discussions similaires

  1. Réponses: 17
    Dernier message: 02/02/2006, 13h03
  2. gestion de la mémoire
    Par moldavi dans le forum C++
    Réponses: 17
    Dernier message: 05/02/2005, 00h18
  3. Réponses: 11
    Dernier message: 26/12/2004, 23h50
  4. Gestion de la mémoire entre plusieurs DLL
    Par Laurent Gomila dans le forum C++
    Réponses: 7
    Dernier message: 27/07/2004, 16h28
  5. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 13h44

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