Salut les gars, j'écris un programme de moniteur de performance qui garde la trace de différentes choses, l'un d'eux étant la mémoire disponible. J'ai pu utiliser ce même code pour trouver le minimum, le maximum et la moyenne pour les autres compteurs de performance, mais celui-ci continue à me donner la mauvaise moyenne.Mauvaise moyenne après la troisième entrée
La première moyenne est correcte, alors j'obtiens des nombres vraiment bas. Alors disons les deux premières fois que j'ai obtenu 1500MB et 1400MB gratuit moyen serait 1450MB, puis la troisième fois est 1600MB, alors ma sortie pour la moyenne serait quelque chose dans le 700-800MB.
Si vous le pouvez s'il vous plaît pointez-moi dans la bonne direction, ce serait apprécié! Merci :)
//Move to and get the latest value in the performance counter for Memory Available Bytes
m.CurrentMemoryAvailableBytes = perfMemoryBytes.NextValue();
//Increase the count that will be used to divide the sum to get average
iCount++;
m.TotalMemoryAvailableBytes += m.CurrentMemoryAvailableBytes;
//Check if the current value is greater then the max for memory available bytes
if (m.CurrentMemoryAvailableBytes > m.MaxMemoryAvailableBytes)
m.MaxMemoryAvailableBytes = m.CurrentMemoryAvailableBytes;
//Initialize Min so its not stuck at 0
if (iCount == 1)
{
m.MinMemoryAvailableBytes = m.CurrentMemoryAvailableBytes;
}
else
{
//Check if the current value is less then the min for memory available bytes
if (m.CurrentMemoryAvailableBytes < m.MinMemoryAvailableBytes)
m.MinMemoryAvailableBytes = m.CurrentMemoryAvailableBytes;
}
addListView("Memory Available Bytes", Convert.ToInt16(m.CurrentMemoryAvailableBytes/1048576),
Convert.ToInt16((m.TotalMemoryAvailableBytes/iCount)/1048576), Convert.ToInt16(m.MinMemoryAvailableBytes/1048576),
Convert.ToInt16(m.MaxMemoryAvailableBytes/1048576));
Voici un exemple de sortie:
dimanche, 24/10/2010 14:49:10
Type de Dernière moyenne Min Max
mémoire 1319MB 1319MB 1319MB 1319MB
dimanche, 24/10/2010 14:49:40
dernier type Moyenne Min Max
mémoire 1326MB 442MB 0MB 1326MB
Pourquoi la moyenne de 1400 et 1500 serait 14500 plutôt que 1450? –
ajouté un 0 supplémentaire par erreur –
Votre sortie montre le Min allant à 0 ... ce qui suggère que vous avez recueilli au moins * une * valeur de 0, il n'est donc pas surprenant que la moyenne a chuté. Encore une fois, si vous pouviez fournir un programme court mais complet, cela vous aiderait ... Vous pouvez aussi regarder les méthodes Math.Max et Math.Min pour éviter vos instructions if. –