草庐IT

cpu-usage

全部标签

c# - 如何限制 C# 程序占用的 CPU 使用率?

我正在开发一个C#程序,我有一个函数消耗太多CPU。我想知道一种通过代码(不使用任何外部应用程序)控制它并限制CPU使用率的方法。例如,如果它使用了90%的CPU使用率,即使它变得更慢,也要使我的应用仅消耗20%。它必须在应用程序内自动完成。如果您提供类(class),那就太棒了。 最佳答案 我不知道你是否可以这样做,但你可以通过Priority更改执行线程的线程优先级属性(property)。您可以通过以下方式设置:Thread.CurrentThread.Priority=ThreadPriority.Lowest;另外,我不认

c# - 更多的 CPU/核心是否有助于缩短 VS.NET 的构建时间?

我想知道是否有人知道VisualStudio.NET是否有并行构建过程?我有一个包含很多项目的解决方案,每个项目都有很多标记/代码、很多类型等。只需坐在那里使用intellisense就可以运行大约700MB。但是构建时间真的很慢,而且似乎只用完了我的两个cpu核心之一。这是否意味着构建过程是单线程的?我的解决方案的构建依赖链不是线性的,所以我不明白为什么它不能并行构建一些项目。我记得JoelSpolsky在博客中介绍了他的新SSD,以及它如何对编译时间没有帮助,但他没有提到他使用的是哪个编译器。我们正在使用VS2005。任何人都知道它是如何编译的?2008/2010有什么不同/更好吗

c# - 在 C# 中获取当前 CPU 使用率

我想在我的项目中获得当前的CPU利用率namespaceMonitoring_Tool{publicpartialclassajaxExecute:System.Web.UI.Page{privatePerformanceCountertheCPUCounter=newPerformanceCounter("Processor","%ProcessorTime","_Total");privatePerformanceCountertheMemCounter=newPerformanceCounter("Memory","AvailableMBytes");protectedvoidP

c# - 如何设置程序的CPU亲和性?

我有一个用C#编写的程序,我正在使用VSTS2008+.Net3.5+WindowsVistaEnterprisex86开发Windows窗体应用程序。我目前的电脑是双核CPU,我想将我的程序的CPUaffinity设置为在特定CPU上运行,并释放另一个CPU来做一些其他工作。任何想法如何做到这一点?通过编码或配置都可以。背景是,我的程序是CPU密集型的,所以我不想让它占用我电脑上所有的两个CPU资源,我想释放一个CPU,这样我就可以同时快速浏览网络。:-)提前致谢,乔治 最佳答案 转到任务管理器->进程标签。寻找你的计划。右键单击

c# - 限制进程的CPU使用率

我有一项服务正在运行,它会定期检查文件夹中的文件,然后对其进行处理。(读取它,提取数据,存入sql)所以我在测试盒上运行了它,它花费的时间比预期的要长一点。该文件有160万行,6小时后仍在运行(然后我回家了)。问题是它运行的机器现在完全瘫痪了——远程桌面超时所以我什至不能在它上面停止进程,或者附加一个调试器来查看有多远等等。它稳定地使用90%以上的CPU,并且所有其他正在运行的服务或应用程序都受到影响。代码是(凭内存,可能无法编译):Listitems=newList();using(StreamReadersr=fileInfo.OpenText()){while(!sr.EndOf

c# - 我的配置管理器中没有 'Any CPU' 选项

我已经阅读了几篇关于VS2010(或之前)中的配置管理器的文章,但我找不到我的问题。我有一个包含6个项目的解决方案。当我打开配置管理器时,我可以选择:'ActiveSolutionConfiguration'的值为Debug、Release、New或Edit。具有值AnyCPU、Mixedplatforms、x64、x86、New或Edit的“ActiveSolutionPlatform”。对于我的6个项目中的任何一个,配置(调试、发布、新建、编辑),平台(非启动项目:任何CPU、新建、编辑和启动项目:x64、新建、编辑)。对于除启动项目之外的所有项目,平台的唯一(真正)选择是“任何C

c# - 为什么 Thread.Sleep() 占用大量 CPU?

我有一个带有伪代码的ASP.NET页面:while(read){Response.OutputStream.Write(buffer,0,buffer.Length);Response.Flush();}任何请求此页面的客户端都将开始下载二进制文件。此时一切正常,但客户端没有下载速度限制,因此将上面的代码更改为:while(read){Response.OutputStream.Write(buffer,0,buffer.Length);Response.Flush();Thread.Sleep(500);}速度问题现在已经解决了,但是在100个并发客户端接连连接(每个新连接之间延迟3

c# - 生成 CPU 缓存未命中时的性能

我正在尝试了解.NET世界中的CPU缓存性能。具体来说,我正在研究IgorOstovsky的articleaboutProcessorCacheEffects.我已经研究了他文章中的前三个示例,并记录了与他的大相径庭的结果。我想我一定是做错了什么,因为我机器上的性能显示的结果与他在文章中显示的结果几乎完全相反。我没有看到我预期的高速缓存未命中的巨大影响。我做错了什么?(错误代码、编译器设置等)这是我机器上的性能结果:如果有帮助,我机器上的处理器是IntelCorei7-2630QM。这是关于我的处理器缓存的信息:我在x64Release模式下编译。下面是我的源代码:classProgr

c# - 获取 CPU 和 RAM 使用情况

我需要在进程执行期间获取ram内存和CPU使用率(该进程有时会运行30分钟以上)。我能够获得空闲RAM,但与任务管理器中的值相比,CPU使用率不正确。难道我做错了什么?这是我的代码:classProgram{staticListAvailableCPU=newList();staticListAvailableRAM=newList();protectedstaticPerformanceCountercpuCounter;protectedstaticPerformanceCounterramCounter;staticvoidMain(string[]args){cpuCounte

c# - 并发集合在没有 Thread.Sleep 的情况下吃太多 cpu

BlockingCollection或ConcurrentQueue的正确用法是什么,这样您就可以自由地使项目出队,而不会使用线程消耗一半或更多的CPU?我正在使用2个线程运行一些测试,除非我有至少50~100毫秒的Thread.Sleep,否则它总是会占用至少50%的CPU。这是一个虚构的例子:privatevoid_DequeueItem(){objecto=null;while(socket.Connected){while(!listOfQueueItems.IsEmpty){if(listOfQueueItems.TryDequeue(outo)){//usethedata}