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 :

Surveillance du niveau de ressources


Sujet :

Langage Delphi

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Août 2003
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 207
    Points : 91
    Points
    91
    Par défaut Surveillance du niveau de ressources
    Bonjour à tous,

    Peut on surveiller dans une application Delphi7 le niveau de ressources et de mémoire ?

    Le but étant de faire rebooter automatiquement le PC dès lors que ses ressources sont devenues insuffisantes.

    Merci d'avance pour vos réponses.
    Wilco

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 464
    Points : 24 888
    Points
    24 888
    Par défaut
    Tu en es à ce point ?
    Normalement, tu ne devrais pas chercher la cause de fuite ?

    Sinon voir HeapMemoryStatus, GetGlobalMemory, GlobalMemoryStatus, je n'ai les noms exact en tête mais une recherche dans l'aide SDK windows 32 devrait te donner les solutions
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    Le but étant de faire rebooter automatiquement le PC dès lors que ses ressources sont devenues insuffisantes.
    Bigre! Ne préfèrerais tu pas plutôt surveiller l'évolution de l'occupation mémoire et interrompre ton appli lorsque cette occupation s'approche de la limite au lieu de rebooter ? Voiçi de quoi surveiller ta mémoire :
    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
     
    procedure InfosMemoire;
    const     ls = #13+#10;
    var       MS: TMemoryStatus;
              MemPhysT,MemPhysD,MemPagiT,MemPagiD,MemVirtT,MemVirtD,msg : string;
    begin     GlobalMemoryStatus(MS);
              MemPhysT:='Mem Phys Totale : '+FormatFloat('#,###" Ko"', MS.dwTotalPhys / 1024);
              MemPhysD:='Mem Phys Dispo  : '+FormatFloat('#,###" Ko"', MS.dwAvailPhys / 1024);
              MemPagiT:='Mem Pagi Totale : '+FormatFloat('#,###" Ko"', MS.dwTotalPageFile / 1024);
              MemPagiD:='Mem Pagi Dispo  : '+FormatFloat('#,###" Ko"', MS.dwAvailPageFile / 1024);
              MemVirtT:='Mem Virt Totale : '+FormatFloat('#,###" Ko"', MS.dwTotalVirtual / 1024);
              MemVirtD:='Mem Virt Dispo  : '+FormatFloat('#,###" Ko"', MS.dwAvailVirtual / 1024);
              msg:=MemPhysT+ls+MemPhysD+ls+MemPagiT+ls+MemPagiD+ls+MemVirtT+ls+MemVirtD;
              showMessage(msg);
    end;
    ... pour HeapMemoryStatus et GetGlobalMemory (connais pas, ou pas encore)voir l'aide comme signalé par ShaiLeTroll.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  4. #4
    Membre régulier

    Profil pro
    Inscrit en
    Août 2003
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 207
    Points : 91
    Points
    91
    Par défaut
    Bonjour et merci pour vos réponses.

    J'avoue cependant n'avoir pas bien compris la différence qu'il y ait entre ressources et mémoire.

    J'utilise un composant TWebBrowser qui, au bout de plusieurs heures de fonctionnement semble saturer le système et le plante. J'affiche la mémoire disponible, elle ne semble pas diminuer au fil des heures. Quand je pose la question, j'obtiens la réponse comme quoi ce sont les ressources du système qui arrivent à saturation et non la mémoire. Comment puis je surveiller ces paramètres et soit rebooter le PC, soit relancer l'application.

    Merci d'avance pour vos réponses
    Wilco

  5. #5
    Membre régulier

    Profil pro
    Inscrit en
    Août 2003
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 207
    Points : 91
    Points
    91
    Par défaut
    Merci pour vos réponses.

    En fait le problème semble provenir du composant TWebBrowser. Je l'utilise pour afficher des pages html qui sont rafraichies toutes les minutes. Après plusiseurs heures d'utilisation, le programme plante.

    Je souhaiterai donc surveiller les ressources systèmes et mémoires afin de faire rebooter le PC avnat qu'il ne plante.

    Wilco

  6. #6
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 735
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 735
    Points : 15 147
    Points
    15 147
    Par défaut
    Citation Envoyé par Wilco Voir le message
    Après plusiseurs heures d'utilisation, le programme plante.
    Et ça ne serait pas plus simple et plus efficace de relancer ton appli toutes les heures ?
    Mes 2 cts,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #7
    Membre régulier

    Profil pro
    Inscrit en
    Août 2003
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 207
    Points : 91
    Points
    91
    Par défaut
    C'est ce que je fais, l'application est relancée toutes les 2h. Je pense que le problème vient soit de Explorer soit du composant TWebBrowser.

    Au bout de quelques heures, j'ai toujours le plantage du PC.

    Wilco

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 464
    Points : 24 888
    Points
    24 888
    Par défaut
    Je te confirme que les bots avec un TWebBrowser ne font pas preuve de fiabilité ... j'ai aussi bidouillé un bot de ce genre, et c'était pas toujours stable ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  9. #9
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    J'utilise un composant TWebBrowser qui, au bout de plusieurs heures de fonctionnement semble saturer le système et le plante. J'affiche la mémoire disponible, elle ne semble pas diminuer au fil des heures. Quand je pose la question, j'obtiens la réponse comme quoi ce sont les ressources du système qui arrivent à saturation et non la mémoire. Comment puis je surveiller ces paramètres et soit rebooter le PC, soit relancer l'application.
    Tu peux avoir des applications qui ne consomment rien en memoire vive, mais qui ont des tailles énormes en mémoire virtuelle. Il faut regarder la taille de la memoire virtuelle.
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/09/2014, 21h43
  2. [XL-2003] Surveillance des evenements de niveau application
    Par MoonDragon dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/08/2011, 16h03
  3. surveillance ressources SQL
    Par niko0083 dans le forum Développement
    Réponses: 2
    Dernier message: 23/05/2011, 13h45
  4. Réponses: 21
    Dernier message: 25/12/2008, 21h44
  5. Surveillance niveau de ressources /mémoire
    Par Wilco dans le forum Delphi
    Réponses: 1
    Dernier message: 12/05/2007, 15h28

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