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 :

utilisation cpu et mémoire


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut utilisation cpu et mémoire
    bon voilà, j'ai un petit soucis et aucune idée de comment faire:

    j'ai un noyau de calcul (en fortran) et une ihm (en delphi) le truc que je veut faire c'est que pendant que le noyau tourne (et il tourne bien ) l'ihm m'affiche l'utilisation du cpu et de la mémoire (bon on utilise les timer... bla bla...) mon soucis: comment récupérer ces valeurs....

    plusieur cas: sous windaube et sous unix:
    -sous windaube, mon noyau de calcul utilise cygwin (et oui ça merche mieux quand même) mais apparait directement dans le task manager (avec ses valeur de cpu et mem) quel est la méthode (utilisant le moins de CPU) pour récupérer ces valeurs
    soit directement à partir de win ou en passant par cygwin(je sais peut-être y a-t-il la fonction avec)

    -sous linux: même question (en priant pour que cela ne dépende pas de la distro)

    P.S. sous windaube, je n'utilise que la dll cygwin1.dll, je suppose que le PATH de win est à jour pour comprendre toutes les instructions cygwin et je lance directement mon prog depuis n'importe quel shell ou via l'ihm (shellexecute... etc...)

    merci pour vos réponses et à bientôt...

  2. #2
    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
    Par défaut
    Voiçi déjà un petit bout pour récupérer des infos sur la mémoire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TfrmGen.Memoire1Click(Sender: TObject); // ici une consultation occasionelle par click sur un bouton
    var       MS: TMemoryStatus; MemPhys,MemOccu,MemDisp,msg : string;
    begin     GlobalMemoryStatus(MS);          
                MemPhys:='- Total : '+FormatFloat('#,###" Ko"', MS.dwTotalPhys / 1024);
                MemDisp:='- Dispo : '+FormatFloat('#,###" Ko"', MS.dwAvailPhys / 1024);
                MemOccu:='- Occup : '+ Format('%d %%', [MS.dwMemoryLoad]);
                msg:='Mémoire'+#13#10;
                msg:=msg+MemPhys+#13#10;
                msg:=msg+MemOccu+#13#10;
                msg:=msg+MemDisp+#13#10;
                ShowMessage(msg);
    end;
    ... pour + de détails voir Aide Delphi au mot-clef MemoryStatus.
    ... et pour le reste de ton message : j'ai rien pigé mais c'est pas grave.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #3
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    bon en fait le truc c'est que je veux récupéré les infos mémoires et CPU d'un processus en cours (le gui qui récupère les états d'occupation memoire et CPU du core) en fait j'ai deux programmes que l'on nommera "gui.exe" et "core.exe"

    ensuite, je doit leS faires marcher sous deux système: unix (kylix...) et windows+cygwin(emulateur unix)

    donc je suppose qu'il faut récupérer le PID du processus core.exe puis relever la memoire qu'il occupe et le %UC qu'il utilise

    (le core.exe est un code de calcul et l'idée c'est de relevé tous les dT donnés sont état mémoire et CPU puis d'en faire un graph, en gros je veux juste les infos d'un process) et comme je suppose que cela relève de l'OS, je précise que y en a plusieur possible (pas en même temps évidement)

  4. #4
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    j'utilise delphi7 et g rien trouvé dans l'help s'approchant de près ou de loin à ce que tu dit, ni à la gestion des processus en cours d'exécution....

    la question reste ouverte

  5. #5
    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
    Par défaut
    J'ai mieux pigé le problème à résoudre : Récupérer des infos provenant d'un côté d'Unix et de l'autre côté de Windows.
    Unix, connais pas.
    Par contre Delphi peut au moins récupérer les infos relatives à l'occupation-mémoire du côté Windows via la routine GlobalMemoryStatus qui existe sous Delphi 5 et voiçi le début de l'aide qui répond chez moi à l'appel du mot-clef MemoryStatsus vu que tu dis "j'utilise delphi7 et g rien trouvé dans l'help s'approchant de près ou de loin à ce que tu dit" :

    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
    The MEMORYSTATUS structure contains information about current memory availability. The GlobalMemoryStatus
     function uses this structure. 
     
    typedef struct _MEMORYSTATUS { // mst  
        DWORD dwLength;        // sizeof(MEMORYSTATUS) 
        DWORD dwMemoryLoad;    // percent of memory in use 
        DWORD dwTotalPhys;     // bytes of physical memory 
        DWORD dwAvailPhys;     // free physical memory bytes 
        DWORD dwTotalPageFile; // bytes of paging file 
        DWORD dwAvailPageFile; // free bytes of paging file 
        DWORD dwTotalVirtual;  // user bytes of address space 
        DWORD dwAvailVirtual;  // free user bytes 
     
    } MEMORYSTATUS, *LPMEMORYSTATUS;
    Pour la suite (assez longue) de l'aide, voir directement l'aide.
    Je serais surpris d'apprendre que ce qui marche sous D5 ne marcherait plus sous D7 (!?!?).

    Par contre, pour le reste, la question reste largement ouverte.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  6. #6
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    Merci, on s'approche, fallait pas regardé dans l'help de delphi mais dans celle du windows SDK.... ça y est j'ai trouvé la page....

    bon dison que je me concentre pour l'instant sur windows....

    le MEMORYSTATUS me donne l'occupation global de la mémoire moi je veut que celle de mon processus core.exe... de plus pour avoir les infos cpu, y le SYSTEM_INFO etc....

    déjà, première étape: identifier le processus visé parli les autres (trouvé sont PID entre autre) ensuite il doit bien y avoir un moyen de récupérer son occupation mémoire et CPU (exactement comme dans le task manager de windows)

    en tout cas merci gil, tu m'a mis sur la bonne help... mais j'ai pas encore résolu mon problème...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connaitre l'utilisation CPU/mémoire
    Par Flophx dans le forum Administration système
    Réponses: 5
    Dernier message: 09/02/2007, 11h40
  2. Utilisation cpu
    Par flzox dans le forum MATLAB
    Réponses: 2
    Dernier message: 19/05/2006, 14h05
  3. Question Utilisation cpu
    Par devdev2003 dans le forum Administration système
    Réponses: 4
    Dernier message: 03/12/2005, 17h01
  4. Utilisation de la mémoire
    Par jagboys dans le forum MFC
    Réponses: 1
    Dernier message: 12/11/2005, 16h30
  5. Utilisation de la mémoire vive....
    Par Neilos dans le forum Windows
    Réponses: 9
    Dernier message: 24/11/2003, 11h09

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