我想在我的项目中获得当前的CPU利用率namespaceMonitoring_Tool{publicpartialclassajaxExecute:System.Web.UI.Page{privatePerformanceCountertheCPUCounter=newPerformanceCounter("Processor","%ProcessorTime","_Total");privatePerformanceCountertheMemCounter=newPerformanceCounter("Memory","AvailableMBytes");protectedvoidP
我正在调试一个C#应用程序,它在几天后变得几乎没有响应。应用程序每秒计算一次内存/CPU使用率,并将其显示在主UI的底部。无响应的原因是获取PerformanceCounter(“WorkingSet-Private”)的RawValue需要时间。几天后,获取RawValue几乎需要一秒钟,卡住了主UI线程。如果我重新启动我的计算机,几天内一切都会再次变快,直到它慢慢变得不那么敏感。如果我在没有PerformanceCounter代码(它是开源的)的情况下重新编译这个应用程序,它会立即正常运行。要排除它是应用程序的可能性,这里有一些示例代码执行完全相同的操作:staticvoidMai
我有一个WCF服务托管在Windows服务中,通过netTCP与winform客户端通信。很久以前,WCF服务托管在IIS中,此时我可以在性能计数器监视器(performanceCounters="All")中看到WCF服务的每一个操作。这样可以轻松查看最常用的操作。我再次需要这些性能计数器,但这次即使性能计数器设置为“全部”,我也无法在性能监视器中找到它们?我需要做什么才能让他们回来?WCF服务需要登录才能使用它的操作,但登录是由我手动完成的,这意味着用户首先使用用户名和密码调用登录操作,如果它的数据不正确,则会出现securityException抛出。所以没有任何进展。
性能计数器是邪恶的。不要使用它们。if(PerformanceCounterCategory.Exists("ILoveYou"))//istrue{PerformanceCounterCategory.Delete("ILoveYou");//throwsexceptionThe**configurationregistry**keyisinvalid}atSystem.Diagnostics.PerformanceCounterLib.RegisterFiles(Stringarg0,Booleanunregister)atSystem.Diagnostics.Performanc
我需要在进程执行期间获取ram内存和CPU使用率(该进程有时会运行30分钟以上)。我能够获得空闲RAM,但与任务管理器中的值相比,CPU使用率不正确。难道我做错了什么?这是我的代码:classProgram{staticListAvailableCPU=newList();staticListAvailableRAM=newList();protectedstaticPerformanceCountercpuCounter;protectedstaticPerformanceCounterramCounter;staticvoidMain(string[]args){cpuCounte
我有以下类,它返回IIS每秒的当前请求数。我每分钟调用RefreshCounters以保持每秒请求数刷新(因为它是平均值,如果我将它保留太久,旧值会影响结果太多)......当我需要显示当前RequestsPerSecond时,我调用该属性。publicclassCounters{privatestaticPerformanceCounterpcReqsPerSec;privateconststringcounterKey="Requests_Sec";publicstaticobjectRequestsPerSecond{get{lock(counterKey){if(pcReqsP
我正在尝试创建loadtest一些应用程序。我只想获取我的应用程序进程的内存使用情况。为此,我将Process/WorkingSet添加到我的计数器集问题是WorkingSetPerformanceCounter以字节为单位读取值并且没有计算超过4294967296等于4GB的值但我的应用程序“以64位模式运行”使用了超过4GB的内存从TaskManager中可以清楚地看出,我看到它需要大约6GB,但这个值没有出现在负载测试图中。那么如何创建自定义PerformanceCounter完全像Process/WorkingSet一样,但使用Kilobytes而不是字节,我可能会得到真正的值
我有一个自定义计数器类别,我需要向其添加一个新计数器,而不删除或重置任何现有计数器。我怎样才能做到这一点?我尝试使用CounterExists(),但即使在我创建了计数器之后,我如何才能将它关联到CounterCreationDataCollection项并将它关联到我现有的计数器类别? 最佳答案 我发现最好的方法是保留现有的原始值,然后在删除并重新创建类别后重新应用它们,尤其是因为关于此主题的信息似乎不多。//////WhendeletingtheCategory,needtopreservetheexistingcounterv
这是我的代码。PerformanceCountercpuCounter=newPerformanceCounter();cpuCounter.CategoryName="Processor";cpuCounter.CounterName="%ProcessorTime";cpuCounter.InstanceName="_Total";//willalwaysstartat0dynamicfirstValue=cpuCounter.NextValue();System.Threading.Thread.Sleep(1000);dynamicsecondValue=cpuCounter.
我在Web项目中使用ASP.net缓存,我正在为其编写一个“状态”页面,其中显示缓存中的项目,以及尽可能多的关于缓存的统计信息。有什么办法可以获得缓存数据的总大小(以字节为单位)?每个项目的大小会更好。我想在网页上显示它,所以我认为我不能使用性能计数器。 最佳答案 我正在查看我的性能监视器,在ASP.NETAppsv2.0.50727类别下,我有以下与缓存相关的计数器:使用的缓存百分比机器内存限制使用的缓存百分比进程内存限制此类别下还有许多其他与缓存相关的指标。这些应该能够为您提供百分比,然后如果您可以通过Cache.Effecti