begin process at 2013 05 24 15:32:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Exécution

 > 

Durées d'exécution bizarres


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Durées d'exécution bizarres

dimanche 2 septembre 2012 à 07:02:17 | Durées d'exécution bizarres

Gerard

Bonjour,
Je mesure les durées d'exécution d'une tâche de fond exécutée dans un thread dédié.
Cette tâche consiste à établir la liste de joueurs et de leur résultat.
Je constate plusieurs choses curieuses, dont une bizarre.
Bien sûr le temps d'exécution de la tâche dépend du nombre de joueurs et est linéairement croissante avec le nombre de joueurs.
la première chose curieuse, est que la pente de la droite obtenue change à un moment donné. je suppose que pendant un certain temps, les données sont toutes contenues dans la mémoire cache, mais qu'après il faut aller en chercher dans la mémoire générale ce qui allonge en proportion les calculs. Est-ce correct?
La deuxième chose curieuse, est que si j'arrête le serveur et le redémarre, le nombre de joueurs restant le même, la durée de calcul baisse sensiblement: meilleure utilisation de la mémoire cache?
Enfin et c'est là la chose bizarre, c'est que ces durées qui s'étalent de quelques microsecondes au début à quelques millisecondes
peuvent parfois sauter à des durées beaucoup plus importantes et cela par multiple de 50 millisecondes. Voir l'histogramme:
et leur répartition dans le temps:

On voit que cela peut se produire alors qu'il y a encore peu de joueurs mais que bien sûr le phénomène devient plus fréquent et plus remarquable au fur et à mesure que le nombre des joueurs augmente.
J'ai bien essayé de modifier la priorité du thread en lui affectant la plus haute possible (tpTimeCritical) mais cela n'a rien changé.
Je ne pense pas que ceci ait une incidence sur le fonctionnement du serveur, mais cela m'intrigue beaucoup.
Pour info, le processeur est un core I7 3770 et l'OS est W7.

Merci à celui qui pourrait avancer une explication et encore plus un remède!
lundi 3 septembre 2012 à 22:49:53 | Re : Durées d'exécution bizarres

Francky23012301

Membre Club
Salut question intéressante mais trop vague pour qu'on puisse lui donner une réponse claire et limpide. Au passage dans tes graphes, l'axe des abscisses et des ordonnées correspondent à quoi ?
mardi 4 septembre 2012 à 05:57:29 | Re : Durées d'exécution bizarres

Gerard

Bonjour,
Merci de ta réponse.
En ordonnée les temps en microsecondes, en abscisse le nombre de mesures
    dans le premier, rangées en ordre décroissant, dans le second en ordre chronologique, donc en nombre croissant de joueurs.

Est-ce que je peux faire quelque chose qui aiderait à éclaircir davantage ce point?

J'ajoute un autre graphique qui permet de mieux comprendre mes premières questions.
Il s'agit des mesures des temps découpés selon la tâche avec bien sûr un zoom sur l'axe des ordonnées:
On constate que la pente change vers 8H du matin, qu'il y a une brusque baisse vers midi suite à un redémarrage du serveur (volontaire) sans arrêter l'ordinateur.
Bien sûr les très grandes durées de multiples de 50 millisecondes sont largement en dehors du champ... (ordonnées toujours en microsecondes)
Passé minuit un autre tournoi recommence ce qui explique les valeurs à nouveau faibles, alors que celui de la veille se poursuit jusqu'à 2 heures du matin...
Note: C'est uniquement la dernière tâche - dresser la liste - qui est affectée par les sauts de 50ms.


Cette discussion est classée dans : nombre, img, exécution, joueurs, durées


Répondre à ce message

Sujets en rapport avec ce message

Réactualiser une fenêtre lors de l'exécution d'un processus 'long' [ par PinOff ] Je cherche à savoir comment faire le DoEvents de VB en Delphi, pour éviter que dans une boucle, mon appli soit figée et blanche.Merci !!!!Vive le dépu valeur hexadecimal d'un nombre [ par fabiin ] Salut !Comment faut-il fairepour connaite la valeur hexadecimal d'un nombre ???Merci par avance@+Fabs Nombre Impair et pair [ par Delphimaneu ] salutje voudrai savoir si quelqu'un c'est comment faire en delphi pour savoir si un nombre donné est impaire ou paire ?Merci d'avance @+ cumul de durées avec TString [ par Teardrop ] Bonjour,j'utilise dans un projet un objet TString qui stocke une durée sous la forme hh:mm:ss et j'aimerai bien pouvoir cumuler les durées.Comment fai Savoir si une procedure est en cours d'exécution [ par Jos ] Bonjour, J'aimerais donc savoir si une procedure est en cours d'éxécution, de façon à déterminer si celle-ci a lancé l'exécution d'une autre.Merci. Pb d'exécution [ par Ethanazieff ] Salut,J'utilise Delphi 6 et j'ai de soucis pour exécuter mes appli. J'ai le msg suivant :"Exception externe C000001D"Merci d'avance pour votre aide. Taille d'un stringgrid [ par padsou ] Salut! J'ai besoin de réduire un stringgrid automatiquement. En fait j'incrémente par programmation le nombre de cases selon le volume des information Nombre de user connecté... [ par dabroke ] Salut,Comment puis je connetre le nombre de user connecté a ma table interbase sans passé par les composants TIB... Est ce que cela est possible en ut Nombre max d'enregistrements que peut supporter un TQuery [ par lirva ] Bonjour,Combien d'enregistrements au maximum peut contenir un objet TQuery ?Comment gérer une requête sur une "grosse table" ?(J'ai une limitation à 7 àexécution/pas à pas [ par usmok ] j'ai un prog ki gere plusieurs bddkan j'exécute l'appli, mon prog plante (pendant kil é en train de trier des infos stovker sur une des bdd)alors ke k


Nos sponsors


Sondage...

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

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 : 0,328 sec (4)

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