Contare quanti byte passano attraverso la rete

venerdì 03 marzo 2006 - 14.49

Andrea.NET Profilo | Newbie

Ragazzi volevo sapere quanti byte passano attraverso un'interfaccia di rete.
Ho cercato un po in giro, e l'unica soluzione che ho trovato è questa:

Thread:

Dim objWMIService As Object = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")
Dim colItems As Object
Do
colItems = objWMIService.ExecQuery("Select * from Win32_PerfFormattedData_Tcpip_NetworkInterface")
For Each objItem As Object In colItems
nByteS = nByteS + objItem.BytesSentPersec
nByteR = nByteR + objItem.BytesReceivedPersec
Next
Thread.Sleep(1000)
Loop

Con questo thread ogni secondo recupero i byte totali passati nell'interfaccia, sembra funzionare correttamente, ma mi sono accorto che la memoria occupata dal processo aumenta ad ogni ciclo, all'incirca 60k di memoria.
Non capisco il perchè, qualcuno mi potrebbe aiutare?
Grazie

Brainkiller Profilo | Guru

>Con questo thread ogni secondo recupero i byte totali passati
>nell'interfaccia, sembra funzionare correttamente, ma mi sono
>accorto che la memoria occupata dal processo aumenta ad ogni
>ciclo, all'incirca 60k di memoria.
>Non capisco il perchè, qualcuno mi potrebbe aiutare?

La gestione della memoria in .NET è automatica. Il valore della memoria occupata varia nel tempo, può crescere come diminuire in base a come agisce l'algoritmo di garbage collection (che è quello che pulisce man mano la memoria). E' una cosa normale non preoccuparti.

Utilizza eventualmente il perfmon.exe per monitorare la tua applicazione. Recupera i dati via WMI ogni secondo o ogni mezzo secondo così puoi monitorare meglio l'andamento della memoria occupata.

Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5