begin process at 2012 05 27 14:32:57
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > UNE CLASSE SIMPLE EN C++ POUR MESURER LE TEMPS D'EXECUTION D'UNE PORTION DE CODE SUR UNE MACHINE NON DEDIEE AUX TESTS (WINDOWS)

UNE CLASSE SIMPLE EN C++ POUR MESURER LE TEMPS D'EXECUTION D'UNE PORTION DE CODE SUR UNE MACHINE NON DEDIEE AUX TESTS (WINDOWS)


 Information sur la source

Note :
8,71 / 10 - par 7 personnes
8,71 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Classé sous :bench, optimisation, processus, mesure, temps Niveau :Débutant Date de création :14/09/2005 Date de mise à jour :20/07/2007 11:46:55 Vu / téléchargé :18 577 / 9 208

Auteur : bweps

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (21)
Ajouter un commentaire et/ou une note


 Description

On a parfois besoin de mesurer le temps d'exécution CPU d'une portion de code (lors de  l'optimisation de l'efficacité d'une procédure par exemple), et pas toujours les moyens de consacrer une machine exclusivement aux tests.
L'utilisation de procédures comme clock(), GetTime(), QueryPerformanceCounter() ou d'autres permet de calculer le temps "réel" qui s'est écoulé entre deux points du code. Lorsqu'on ne peut pas dédier une machine aux tests, l'inconvénient de ces méthodes est de prendre en compte le temps des autres applications qui tournent sur le système en concurrence avec celle testée. Ce cas de figure est par exemple rencontré sur une machine sur laquelle on ne possède pas les droits suffisants pour désactiver une défragmentation, une analyse antivirus... automatique. Le temps consommé par ces applications n'est alors pas décompté par les méthodes sus-citées, ce qui fausse totalement les mesures.
Cette classe fournit un moyen simple de mesurer le temps processeur du processus courant uniquement entre un point de l'exécution et un autre grâce à l'utilisation de la fonction le l'API de Windows GetProcessTimes. L'utilisation de cette procédure permet de ne pas avoir recours à une gestion avancée du multi-tâche pour contrôler la préemption de notre processus.
Elle dispose en outre d'une mémoire comparable à celle d'un chronomètre classique afin de pouvoir ajouter une mesure à d'autres.
Elle présente les avantages suivants :
- ne mesurer que le temps du processus (si d'autres applications sont en cours d'exécution sur le système, la mesure n'est pas faussée)
- très simple (à mon avis) d'utilisation

Source

  • //---------------------------------------------------------------------------
  • // Classe Chronomètre : permet de mesurer le temps CPU du processus courant
  • // Le temps considéré est le UserTime du processus, soit le temps pendant
  • // lequel le système exécute du code appartenant au processus uniquement.
  • //---------------------------------------------------------------------------
  • #ifndef chronoH
  • #define chronoH
  • #include <windows.h>
  • //---------------------------------------------------------------------------
  • class Chrono
  • {
  • // Handle du processus courant
  • HANDLE ihP;
  • // Temps CPU lors du déclenchement
  • unsigned int startTime;
  • public :
  • // mémoire du chrono
  • unsigned int m;
  • // Constructeur
  • Chrono() {reset();}
  • // mise à zéro de la mémoire
  • void reset() {m=0;}
  • // Lance le chronomètre
  • void iGo()
  • {
  • FILETIME ilpCreationTime;
  • FILETIME ilpExitTime;
  • FILETIME ilpKernelTime;
  • FILETIME ilpUserTime;
  • SYSTEMTIME stUser;
  • ihP=GetCurrentProcess();
  • GetProcessTimes(ihP,&ilpCreationTime,&ilpExitTime,&ilpKernelTime,&ilpUserTime);
  • FileTimeToSystemTime(&ilpUserTime,&stUser);
  • startTime=(stUser.wMilliseconds +1000*(stUser.wSecond
  • +60*(stUser.wMinute+60*(stUser.wHour+24*(stUser.wDay-1)))));
  • }
  • // Renvoie le temps CPU du processus, en millisecondes,
  • // écoulé depuis le lancement du chrono
  • unsigned int iStop()
  • {
  • FILETIME ilpCreationTime;
  • FILETIME ilpExitTime;
  • FILETIME ilpKernelTime;
  • FILETIME ilpUserTime;
  • SYSTEMTIME stUser;
  • GetProcessTimes(ihP,&ilpCreationTime,&ilpExitTime,&ilpKernelTime,&ilpUserTime);
  • FileTimeToSystemTime(&ilpUserTime,&stUser);
  • return stUser.wMilliseconds +1000*(stUser.wSecond
  • +60*(stUser.wMinute+60*(stUser.wHour+24*(stUser.wDay-1))))
  • -startTime;
  • }
  • // Ajoute le temps CPU du processus, en millisecondes,
  • // écoulé depuis le lancement du chrono à la mémoire
  • void iStopAndAdd()
  • {
  • m+=iStop();
  • }
  • };
  • //---------------------------------------------------------------------------
  • #endif
//---------------------------------------------------------------------------
// Classe Chronomètre : permet de mesurer le temps CPU du processus courant
// Le temps considéré est le UserTime du processus, soit le temps pendant
// lequel le système exécute du code appartenant au processus uniquement.
//---------------------------------------------------------------------------
#ifndef chronoH
#define chronoH
#include <windows.h>
//---------------------------------------------------------------------------
class Chrono
{
  // Handle du processus courant
  HANDLE ihP;
  // Temps CPU lors du déclenchement
  unsigned int startTime;

public :
  // mémoire du chrono
  unsigned int m;

  // Constructeur
  Chrono() {reset();}
  // mise à zéro de la mémoire
  void reset() {m=0;}
  // Lance le chronomètre
  void iGo()
    {
    FILETIME ilpCreationTime;
    FILETIME ilpExitTime;
    FILETIME ilpKernelTime;
    FILETIME ilpUserTime;
    SYSTEMTIME stUser;
    ihP=GetCurrentProcess();
    GetProcessTimes(ihP,&ilpCreationTime,&ilpExitTime,&ilpKernelTime,&ilpUserTime);
    FileTimeToSystemTime(&ilpUserTime,&stUser);
    startTime=(stUser.wMilliseconds +1000*(stUser.wSecond
	     +60*(stUser.wMinute+60*(stUser.wHour+24*(stUser.wDay-1)))));
  }
  // Renvoie le temps CPU du processus, en millisecondes, 
  // écoulé depuis le lancement du chrono
  unsigned int iStop()
    {
    FILETIME ilpCreationTime;
    FILETIME ilpExitTime;
    FILETIME ilpKernelTime;
    FILETIME ilpUserTime;
    SYSTEMTIME stUser;
    GetProcessTimes(ihP,&ilpCreationTime,&ilpExitTime,&ilpKernelTime,&ilpUserTime);
    FileTimeToSystemTime(&ilpUserTime,&stUser);
    return stUser.wMilliseconds +1000*(stUser.wSecond
	+60*(stUser.wMinute+60*(stUser.wHour+24*(stUser.wDay-1))))
	-startTime;
    }
  // Ajoute le temps CPU du processus, en millisecondes, 
  // écoulé depuis le lancement du chrono à la mémoire
  void iStopAndAdd()
    {
    m+=iStop();
    }
};
//---------------------------------------------------------------------------
#endif

 Conclusion

Pour utiliser la classe, il suffit de :
- ajouter l'include (#include "Chrono.h" après avoir copié le fichier dans le répertoire source)
- définir un objet Chrono (par exemple, tps) pour chaque temps que vous voulez mesurer
- déclencher le chronomètre juste avant la portion de code à chronométrer (tps.iGo())
- si vous voulez ajouter le temps à la mémoire, faire tps.iStopAndAdd(), le temps écoulé sera ajouté à tps.m
  si vous voulez seulement récupérer les temps écoulé depuis le déclenchement, faire temps=tps.iStop()
Le zip contient un exemple d'utilisation (demo.cpp), peut-être plus clair que ces explications...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

14 septembre 2005 12:22:57 :
Changement de titre (plus complet)
14 septembre 2005 20:44:33 :
Ajout du code dans la zone code (pour éviter le téléchargement)
14 septembre 2005 20:52:38 :
Juste une mise en forme du code...
16 septembre 2005 14:16:23 :
Tirant l'expérience des remarques de BruNews, optimisation du code et explication plus précise du but du code.
08 mars 2006 17:00:02 :
modif mineure
31 juillet 2006 05:30:52 :
mod mineure
12 avril 2007 14:31:09 :
Ajout des catégories
05 juillet 2007 17:02:20 :
Mod. forme
20 juillet 2007 11:46:55 :
.

 Sources de la même categorie

DATETIMECONVERTER par guill76
Source avec Zip CLASSE DE DATE LOCALISÉE (20 LANGUES) par exar
Source avec Zip CLASSE MOMENT V2.0 par le_duche
CALCUL DATE DE PAQUES (DATE MOBILE) par steph12358
Source avec une capture VACCATION (AVEC FONCTION) CONSOLERIE, REMIX GCC par sebman

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CRIBLE D'ERATOSTHÈNE OPTIMISÉ par pgl10
Source avec Zip Source avec une capture LOGICIEL AGENDA PLANNING par BencoAndCo
Source avec Zip Source avec une capture OPTIMISATION DE CALCULS (WIN64) par BruNews
Source avec une capture POWER MATH: TESTE DE VITESSE ENTIERS VS REELS , CLASS VS STR... par dedalusman
COMMENT CALCULER LE TEMP D'EXÉCUTION DE CERTAINES FONCTIONS ... par NitRic

Commentaires et avis

Commentaire de DeAtHCrAsH le 15/09/2005 11:28:07

Est ce que c'est vraiment précis ?
Je ne connaissais pas cette méthode.

BruNews aurais tu peux etre plus d'information la dessus?

Commentaire de BruNews le 15/09/2005 11:48:52 administrateur CS

GetProcessTimes() est très bien pour ce genre de chose.
Par contre:
int ms=-(stUser1.wMilliseconds +1000*(stUser1.wSecond+60*(stUser1.wMinute+60*(stUser1.wHour+24*(stUser1.wDay-1)))))
+ stUser2.wMilliseconds +1000*(stUser2.wSecond+60*(stUser2.wMinute+60*(stUser2.wHour+24*(stUser2.wDay-1))));

Pourquoi ce double calcul ??? soustraire le filetime final à celui de début et on ne fait qu'1 seule fois le calcul.

Commentaire de bweps le 15/09/2005 15:00:33

En effet, on pourrait gagner en efficacité ici.
Je ne me suis pas attardé sur la complexité temporelle de cette procédure, qui est négligeable par rapport à celle des procédures dont je mesure le temps d'exécution. Mais si on doit faire un usage très intensif de la méthode (pour mesurer de très petit temps d'exécution de nombreuses fois), elle peut représenter pas mal de perte, et la modif que tu proposes est judicieuse.
Merci pour le feed-back.

Commentaire de bweps le 15/09/2005 15:55:54

La précision supportée par la structure FILETIME est de 100 nanosecondes. Cependant, la mesure effectuée par GetProcessTimes() n'est bien sûr pas aussi précise et semble renvoyer, dans les cas de figure où je l'utilise, des sommes de 15 ou 16ms. Sur des temps de moins de 200ms., cela ne suffit donc pas. Par contre, au-dessus de cette valeur, cela me convient personnellement, les algorithmes que je teste (théorie des graphes, de l'ordonnancement...) étant très gourmands en temps.
Pour ce qui est de la compatibilité, GetProcessTimes peut être utilisée sous Windows "Longhorn", Windows XP, Windows 2000 Professional, Windows NT Workstation 3.5 et plus récents.

Commentaire de BruNews le 15/09/2005 17:34:15 administrateur CS

J'ai testé cela:

DWORD v = 0;

__int64 __stdcall Teste1()
{
  LARGE_INTEGER lif, lid, lie;
  DWORD i, n;
  QueryPerformanceFrequency(&lif);
  n = 0;
  i = 0xFFFFFFF;
  QueryPerformanceCounter(&lid);
  do {
    n += i;
  } while(--i);
  v = n;
  QueryPerformanceCounter(&lie);
  lie.QuadPart -= lid.QuadPart;
  lie.QuadPart *= 1000;
  lie.QuadPart /= lif.QuadPart;
  return lie.QuadPart;
}

__int64 __stdcall Teste2()
{
  FILETIME a;
  __int64 deb, fin;
  DWORD i, n;
  HANDLE hprcss;
  hprcss = GetCurrentProcess();
  n = 0;
  i = 0xFFFFFFF;
  GetProcessTimes(hprcss, &a, &a, &a, (FILETIME*) &deb);
  do {
    n += i;
  } while(--i);
  v = n;
  GetProcessTimes(hprcss, &a, &a, &a, (FILETIME*) &fin);
  fin -= deb;
  fin /= 10000;
  return fin;
}

int WINAPI WinMain(HINSTANCE h, HINSTANCE x, LPSTR ystr, int z)
{
  char buf[24];
  _i64toa(Teste1(), buf, 10);
  MessageBox(0, buf, "1", 0);
  _i64toa(Teste2(), buf, 10);
  MessageBox(0, buf, "2", 0);
  return 0;
}

GetProcessTimes n'a bien sur pas la précision du timer haute résolution, normal ce n'est pas fait pour cela mais ça reste acceptable sur des routine un peu longues.
Pas la peine d'avoir 3 FILETIME inutilisées, 1 seule suffit.
Pour celles de début et fin, du __int64 fera l'affaire et évitera plein de calculs.

Commentaire de bweps le 15/09/2005 17:59:29

J'ai regardé très succinctement la doc de msdn sur QueryPerformanceFrequency et QueryPerformanceCounter et je n'ai pas trouvé la réponse à cette question : est-ce que ces procédures renvoient le temps "global" ou le temps CPU du processus (utilité première de GetProcessTimes)?

Commentaire de BruNews le 15/09/2005 18:07:43 administrateur CS

Il n'est pas notion de processus dans cette affaire, chaque appel QueryPerformanceCounter enregistre le compteur au moment de l'appel et rien de plus. Il faut bien sur éviter tout switch context pendant les mesures, à cet effet utiliser SetThreadPriority,SetThreadIdealProcessor, etc...

Commentaire de bweps le 15/09/2005 19:12:01

Hmm... On ne se comprend pas (ou du moins je ne te comprends pas).
Le compteur dont tu parles est-il lié au système "globalement" ou au processus ou thread qui fait appelle QueryPerformanceCounter?
Si le compteur est global, la mesure peut être faussée par l'utilisation du système par d'autres appli qui tournent en même temps, et le temps calculé n'est pas celui de notre code, mais celui de notre code plus tous les autres qui peuvent être amenés à s'exécuter dans un environnement multi-tâche comme Windows. S'il faut recourir à des astuces (pas très recommandables) comme définir la priorité du thread en Critical, avoue que ma méthode est, sinon moins précise, bien plus pratique !
Est-ce que j'ai bien exprimé ce qui me fait poser ma question précédente ?

Commentaire de BruNews le 15/09/2005 22:35:51 administrateur CS

On s'est très bien compris, pour cela que je disais qu'il ne faut pas de switch context.
Le compteur haute précision est le même pour tout le monde et unique dans le système. Ceci ne me semble pas grave, les mesures en millièmes de secondes ne se font qu'en phase de tests et sur machines de dev, on sait au moment des mesures qu'on ne lance pas d'autres trucs pour ne pas fausser les mesures.
GetProcessTimes reste un bon choix pour des routines plus longues, encore que on obtiendrait +- la même précision avec simplement GetTickCount.

Commentaire de DeAtHCrAsH le 17/09/2005 01:43:18

Quote : "on obtiendrait +- la même précision avec simplement GetTickCount."

-> En gros BWEPS c'est pris la tete pour rien

Commentaire de bweps le 19/09/2005 14:41:26

DeAtHCrAsH, je te rappelle que l'intérêt principal (que vous ne semblez pas saisir sur ce forum tant que vos "pontes" ne vous ont pas ouvert les yeux sur la voie de la sagesse) est d'avoir une mesure du TEMPS CONSACRE A L'EXECUTION DU PROCESSUS, ce que GetTickCount est incapable de faire.
Maintenant, s'il est impossible aux trois quarts des visiteurs de ce forum de se faire leur opinion sans avoir à appeler leur maman pour leur expliquer et ne faire que l'écouter (il semble que tu n'aies pas vraiment lu mes posts, mais seulement ceux de BruNews, dont je ne remets pas en cause l'incommensurable sagesse, mais son côté Gourou), il me semble que le côté mutualisation des connaissances qui devrait se développer sur un forum est fortement bridé ici par votre manie (que j'ai pu découvrir en parcourant d'autres posts du forum) de suivre les opinions de quelques rares éclairés. De ce fait, si l'éclairé en personne ne voit pas l'intérêt de quelque chose qu'il n'aura jamais à utiliser, vous non plus, alors que vous ne travaillez pas forcément dans les mêmes conditions ni ne faîtes exactement la même chose que lui. Précisément, ici, BruNews peut mesurer ses temps d'exécution avec n'importe quelle méthode puisqu'il dispose de machines consacrées, au moins dans certaines circonstances, exclusivement aux test. Ce n'est pas mon cas, et, je pense, pas le cas de beaucoup de programmeurs solo, amateur, "à petit budget" ou perdu dans une plus ou moins grosse boîte dont l'administrateur système a décidé de ne pas céder les droits nécessaire à la gestion de l'antivirus ou d'autres logiciels de maintenance. Ceux-ci pourraient alors profiter de mon expérience s'ils ne se contentaient pas de l'avis d'une unique personne, qui n'a pas certainement pas eu le temps dans sa vie d'humain d'expérimenter la totalité des conditions de travail possibles.
J'espère sincèrement m'être trompé et que l'idée porteuse de ce forum n'est pas totalement gâché par ce genre de comportements.

Commentaire de BruNews le 19/09/2005 15:06:12 administrateur CS

Je pense que le post de DeAtHCrAsH relevait de la simple boutade, pas de quoi se prendre le crane pour si peu. Plaisanter entre 2 algos ne fait jamais de mal.

Commentaire de bweps le 19/09/2005 15:55:39

ok.j'avions pas compris. :)

Commentaire de nightlord666 le 05/10/2005 22:03:51

Je rappelle quand même à bweps que la plupart du temps, on chroonmètre une fonction pour connaitre le temps qu'elle va mettre à s'executer sur N'IMPORTE QUEL ordinateur, pas avec un seul processus.
Enfin, je ne critique pas ta source, car j'ai bien appris en l'examinant, mais je trouve que ça ne sert pas à grand chose...
En fait, je t'ai mis 7 pour ta source.

Commentaire de bweps le 06/10/2005 15:14:56

Voici un cas dans lequel j'en ai besoin (ça n'engage que moi) : je dois tester la robustesse d'un algorithme. Pour cela, je dois le lancer sur au moins 500 jeux de test différents et contrôler que le temps d'exécution est "stable", i.e. qu'il n'y ai pas d'instances pour lesquelles l'algo met deux fois plus de temps que pour les autres.
Comme je ne dispose que de ma machine de développement pour effectuer les tests et que je n'ai pas les droits d'admin dessus, la seule solution que j'ai trouvé est de lancer ces tests la nuit ou le week-end, et ne conserver que le temps de mon processus pour ne pas fausser les mesures. Du coup, si l'antivirus se met en route, je ne me retrouve pas avec quelques instances 10 fois "plus lentes" que les autres alors qu'elles sont "aussi faciles" que les autres.
Voilà. Si quelqu'un a une autre solution à me proposer, je suis prêt à changer de méthode si elle me paraît meilleure.

Commentaire de yann_lo_san le 05/10/2006 15:20:29

J'aime bien ta façon de partager le code BWEPS, sans pour autant avoir l'espoir de se faire mousser par les candidats aux jugements en tout genres, moi je te mets 10/10 et je te dis bravo !

Commentaire de saulcy25 le 03/04/2007 14:00:21

Bonjour , je trouve trés interessant ce que vous avez fait ,moi je cherche à clalculer le temps d'éxecution d'un fonction en temps réel sans en prendre en compte de ce qu'elle fait windows en c#
est ce que vous croyer que je peux utiliser votre téchnique.
Cordialement

Commentaire de bweps le 12/04/2007 12:22:16

Bonjour,
a priori vous pouvez utiliser la même méthode dans n'importe quel langage sous Windows, à partir du moment où celui-ci vous permet d'appeler des fonctions de l'API Windows (GetCurrentProcess et GetProcessTimes ici).
Bon courage.

Commentaire de baot le 25/01/2008 17:47:12 10/10

rien à dire sur tout ce qui dit bweps, c'est le meilleur, c'est mon petit frère...

Commentaire de shuttleur le 10/06/2008 09:35:39

Salut Bweps

Je n'ai pas trop compris pourquoi il y a eu si peu d'engouement pour votre source, je la trouve très pratique.

Dans la pratique, j'ai des résultats étonnants : j'obtiens 0 ms pour l'exécution de plusieurs fonctions (dont des appels à une interface OLE), et si j'insère dans cette liste de fonctions exécutées un Sleep(500), j'obtiens des valeurs entre 70 et 90 ms.

J'ai essayé d'utiliser SetThreadAffinityMask(GetCurrentThread(),1) qui est nécessaire pour que certains chronomètres de ce site fonctionnent bien (bride l'appli à un coeur) mais rien ne change.

J'utilise simplement : tps->iGo() et j'affiche tps->iStop()

Sinon, le chronomètre renvoie une valeur plausible à un seul endroit de mon code.

Auriez vous une explication ?
(Vista + Core2Duo)

Commentaire de bweps le 10/06/2008 13:50:33

Bonjour Shuttleur,

je ne connais pas l'explication a priori. Cependant, cela pourrait être une de ces raisons (simples hypothèses) :
- le déroulement des fonctions que vous appelez est sensible au temps (une fonction prépare le terrain pour une deuxième ; si celle-ci ne s'exécute pas immédiatement (en cas de basculement vers un autre thread...), des opérations supplémentaires sont nécessaires pour l'exécution de la seconde. J'opterais pour cette hypothèse dans le cas de la manipulation d'objets OLE ; je n'ai aucune idée de comment les interactions sont gérées mais cela me semble plausible : durant la période ou le thread chronométré est suspendu, d'autres processus ou threads peuvent modifier l'état d'un objet OLE. A la reprise du thread, l'objet est signalé comme modifié, et la récupération du nouvel état de l'objet doit être effectuée par notre thread (d'où la consommation CPU). Lorsqu'aucun sleep n'est appelé, l'ensemble des fonctions est exécuté intégralement dans "intervalle inter-tick" (puisque le temps mesuré est nul), et aucun thread extérieur ne peut modifier l'objet partagé.

- lors de l'appel à Sleep (ou lors du réveil du thread), il semblerait qu'il puisse y avoir un petit délai dû au fait que le temps de "sommeil" ne soit pas proportionnel au "clock tick rate" (http://msdn.microsoft.com/en-us/library/ms686298(VS.85).aspx). Ceci pourrait peut-être expliquer une augmentation du temps mesuré de quelques millisecondes par appel à sleep, au cas où ces cas soient gérés approximativement par le système (serait surprenant ?).

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

temps d'exécution d'un processus (c/linux) [ par davidauche ] bonjour a tt monde,comment calculer le&nbsp;temps d'ex&#233;cution d'un processus en c sous linux!?j'essaie avec time et times&nbsp; + struct tms marc Utilisation du port // ; mesure temps-résistance [ par thibzult ] Bonjour,Je dois d'abord vous dire que mes connaissances en programmations sont ... quasi nulles ! J'ai programm&#233; il y a longtemps en GW-Basic pui temps processeur d'un processus [ par lefouman ] bonjour a tous je viens de commencer un stage en informatique et je dois faire un programme en C++ qui me permette de trouver le temps qu'un processeu SIMULATION d’APPLICATION TEMPS RÉEL [ par MEHOUTA ] je souhaite r&#233;aliser une simulation d'application temps r&#233;el sous unix et je dois utiliser comme solution des processus et que des appels sy temps d'exécution trop long [ par diable007 ] bonjour, j'ai une application parallèle en c++ et MPI,  j'ai une partie qui ne nécessite pas de communication avec mpi entre les processeurs.  En séqu mesure de temps d'exécution [ par ezneti ] Bonjour tout le monde, Je veux faire la mesure de temps d'exécution d'un programme (de traitement d'image)developpé en C sur un processeur bien determ ordonnancement [ par futur1ing1info ] Salut, j'ai un probleme d'ordonnancement qui utilise la politique tourniquet avec un quantum de temps qui peut etre superieur au temps d'execution de Relancer un processus quant celui ci et down [ par xana05 ] Bonjour, Voila j'ai un petit soucie avec un programme (de vidéosurveillance ) il arrive que le programme se ferme tout seul quant il commence l'encoda création d'un processus en C sous linux [ par azimhamid1975 ] salut à tous j'ai un probléme [^^confus2] [^^sad1] je cherche un programme C qui crée un processus sachant que : le processus parent (en C sous linux


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,154 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales