Hej undrar hur man ska göra (om det går) för att få reda på hur mycket av det fysiska minnet som för tillfället används. http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_perfformatteddata_perfos_memory.asp?frame=true Tack för länken, men jag får tyvärr inte det att fungera :( Läs; Testade me Win32_PerfRawData_PerfOS_Memory och får fortfarande "Oglitlig klass" :( System.Diagnostics.Performance* Humm, när jag kör med <b>PerformanceCounter("Memory", "Available Bytes")</b> får jag Kategorin hittades inte när jag skriver ut resultatet. Jag fann att det var mycket enkelt: Du måste skapa en PerformanceCounter själv. Mycket enkelt, ja iaf om man kör vb.net 2005. För dom som fortfarande kör vb.net 2003 går att göra följande. Har en knapp med följande kod inuti > Men jag vill gärna veta vad som var fel på min <b>...PerformanceCounter..</b> del :) Med exemplet nedan kan du hämta alla tillgängliga kategorier, räknare och instanser. Det som behövs är tre comboboxar(cboCategories,cboInstances,cboCounters) och en commandbutton(btnPerf). Tusen tack alla för er hjälp!Kolla hur mycket av det fysiska minnet som används?
Med följande kod kan jag få reda på _hur_ mycket minne jag har
Dim searchRAM As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMemory")
Dim MemoryInfo As ManagementObject
Dim Memory As Long
For Each MemoryInfo In searchRAM.Get
Messagebox.show(MemoryInfo("Capacity"))
Next
Men som sakt vill göra veta hur mycket av minnet som används :)
Mvh Alex
Sv: Kolla hur mycket av det fysiska minnet som används?
Performance countersSv:Kolla hur mycket av det fysiska minnet som används?
Har testat med <b>("SELECT * FROM Win32_PerfFormattedData_PerfOS_Memory")</b> men får ogiltlig klass. Jag har även testat med <b>("SELECT * FROM Win32_PerfFormattedData")</b> där hittar jag lite, men inte hur mycket minne som används.
Gör jag på fel sätt eller?Sv: Kolla hur mycket av det fysiska minnet som används?
> he original data source is the PerfOS performance library. The corresponding raw data class is Win32_PerfRawData_PerfOS_Memory
Annars, som jag sa, performance countersSv:Kolla hur mycket av det fysiska minnet som används?
> Annars, som jag sa, performance counters
Vad menar du med det? Performance counters?Sv: Kolla hur mycket av det fysiska minnet som används?
http://www.google.com/search?client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial_s&hl=en&q=c%23+performance+counter+memory&btnG=Google+SearchSv:Kolla hur mycket av det fysiska minnet som används?
Jag har Imports System.Diagnostics med längst upp i mitt projekt
Vad kan jag ha missat?Sv: Kolla hur mycket av det fysiska minnet som används?
Messagebox.show("Available Physical Memory: " & My.Computer.Info.AvailablePhysicalMemory.ToString & " bytes")
Du kanske dessutom har nytta av virtuellt minne:
Messagebox.show("" Available Virtual Memory: " & My.Computer.Info.AvailableVirtualMemory.ToString & " bytes")
Funna på:
http://www.vbcodesource.com/netSnippets.html
Sv: Kolla hur mycket av det fysiska minnet som används?
Som jag tolkar det, inget du gör i koden:
MSDN:
Performance counters should not be created and immediately used.
There is a latency time to enable the counters, they should be created
prior to executing the application that uses the counters.</info>Sv:Kolla hur mycket av det fysiska minnet som används?
Dim perf As New PerformanceCounter("Minne", "Tillgängliga byte")
MsgBox(perf.RawValue / 1024)
Sv:Kolla hur mycket av det fysiska minnet som används?
Try
Dim infomem As New PerformanceCounter("Memory", "Available Bytes")
Messagebox.show(infomem)
Catch ex As Exception
MsgBox("Debugg" & Chr(13) & ex.Message)
End Try
Då jag få fel om att kategorin inte finns.
--
> Jag fann att det var mycket enkelt...
Tusen tack det fungerar!
Men jag vill gärna veta vad som var fel på min <b>...PerformanceCounter..</b> del :)
Edit:
Robert, jag får samma fel på din, att kategorin inte finns.
Sv: Kolla hur mycket av det fysiska minnet som används?
Tja, du kan ju läsa exempelkoden t.ex. ;)
> Messagebox.show(infomem)
ska vara:
Messagebox.show(infomem.NextValue().ToString())Sv: Kolla hur mycket av det fysiska minnet som används?
Private Sub btnPerf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPerf.Click
Dim cat As String
If cboCategories.SelectedIndex >= 0 Then
cat = cboCategories.Items.Item(cboCategories.SelectedIndex)
End If
Dim cnt As String
If cboCounters.SelectedIndex >= 0 Then
cnt = cboCounters.Items.Item(cboCounters.SelectedIndex)
End If
Dim inst As String
If cboInstances.SelectedIndex >= 0 Then
inst = cboInstances.Items.Item(cboInstances.SelectedIndex)
End If
Dim perf As New PerformanceCounter
perf.CategoryName = cat
perf.CounterName = cnt
If inst <> "" Then
perf.InstanceName = inst
End If
MsgBox(perf.NextValue.ToString)
perf.Close()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cat As PerformanceCounterCategory()
Dim i As Integer
'## Hämta kategorier
cboCategories.Items.Clear()
cat = PerformanceCounterCategory.GetCategories()
For i = 0 To cat.Length - 1
cboCategories.Items.Add(cat(i).CategoryName)
Next
End Sub
Private Sub cboCategories_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboCategories.SelectedIndexChanged
Dim cnt As PerformanceCounter()
Dim inst As String()
Dim i As Integer
'## Hämta instanser
cboInstances.Items.Clear()
inst = New PerformanceCounterCategory(cboCategories.Items.Item(cboCategories.SelectedIndex)).GetInstanceNames()
For i = 0 To inst.Length - 1
cboInstances.Items.Add(inst(i))
Next
'## Hämta räknare
cboCounters.Items.Clear()
If cboInstances.Items.Count > 0 Then
cnt = New PerformanceCounterCategory(cboCategories.Items.Item(cboCategories.SelectedIndex)).GetCounters(cboInstances.Items.Item(0))
Else
cnt = New PerformanceCounterCategory(cboCategories.Items.Item(cboCategories.SelectedIndex)).GetCounters()
End If
For i = 0 To cnt.Length - 1
cboCounters.Items.Add(cnt(i).CounterName)
Next
End Sub
Sv: Kolla hur mycket av det fysiska minnet som används?
Jag nöjer mig med
Messagebox.show("Available Physical Memory: " & My.Computer.Info.AvailablePhysicalMemory.ToString & " bytes")
Efter som det var lättast. Återigen tack för er hjälp!
Mvh Alex