2010-08-25 17 views
5

Perfmon.msc kullanarak özel bir performans sayacı oluşturabilir ve sayaç günlüğü kullanarak sayaç değerini bir metin dosyasına yazabilirsiniz.ProgramStatic olarak oturum açmak için PerformanceCounter

Ayrıca, bu programatik kullanarak, System.Diagnostics.PerformanceCounter kullanarak bir performans sayacı oluşturarak ve NextValue() yöntemini kullanarak sayaç değerini elde edebilirsiniz. PerformanceCounter nesnesinin günlüğünü bir metin dosyasına da (perfmon.msc Sayıcı Günlüğüne benzer şekilde) yazmak için programsal bir yolu var mı?

+0

'u kullanarak çalıştırmayı öneririm. PerfMon zaten çeşitli biçimlerde bir dosyaya günlükleri toplama işlemini rastgele bir sayaç kümesi için programlama yeteneğine sahiptir. – Richard

+0

Evet, ancak programatik olarak bunu yapmak için bir yol bulamadım –

cevap

2

Başka bir posterin önerdiği gibi P/Invoke kullanımı çok fazla sorun verdi. logman'u komut satırından System.Diagnostics.Process.Start()

4

.NET'te sayacı kendiniz almanız ve örneklenen değeri bir dosyaya yazmanız gerekir. Ancak, Win32 API, istediğiniz şeyi yapmak için işlevleri vardır. Yerel API örneği için bkz. Writing Performance Data to a Log File. API'yi çağırmak için p/invoke kullanmayı deneyebilirsiniz.

+0

Bu kodları C# .NET'de yazabilir misiniz? –

+0

@Louis Rhys: Yalnızca, API'yi yönetilen koddan çağırmak veya API etrafında yönetilen bir C++ sarıcı oluşturmak için platform çağırma (p/invoke) kullanırsanız. P/invoke muhtemelen daha kolay, ancak bazı API'lerin bu şekilde çağırılması gerçekten zor. PDH API'sini kendim denemedim. –

İlgili konular