Tag: cpu

如何以编程方式确定是在多核,超线程还是多处理器上?

我知道如何获得处理器类型,也许这是唯一的方法,但我实际上正在寻找一种方法来确定应用程序是在多核处理器上运行还是在超线程单核处理器上运行 。 (背景:我的一些客户的托管服务提供商对于他们通过VMWare映像提供的资源非常模糊。这个应用程序应该在多核上运行,但自上次“移动”以来已经看到了有害的性能。通常情况下,一个线程上的多核,一个核心峰值,而不是另一个线程。在这个“多核”上,即使在单线程应用程序上,两个处理器都会出现峰值。)

GetCurrentProcessorNumber()如何工作? 运行时线程的CPU核心?

是否有任何流畅的方法来查找运行时在multithreading代码中运行的线程的CPU核心ID? 我试图使用GetCurrentProcessorNumber(),但它似乎没有给出各个线程正在运行的CPU核心ID。 我一直在使用的代码是: using System; using System.Threading; using System.Threading.Tasks; using System.Diagnostics; using System.Runtime.InteropServices; class S { [DllImport(“kernel32.dll”)] static extern int GetCurrentProcessorNumber(); static void Main() { Task t1 = new Task(A, 1); Task t2 = new Task(A, 2); Task t3 = new Task(A, 3); Task t4 = new Task(A, 4); int myProcessorNum = GetCurrentProcessorNumber(); Console.WriteLine(“processNo: ” […]

我想获得一个独特的CPU ID

我使用下面的代码来获取唯一的CPU ID,我在网上找到了各种样本。 然而。 偶然的机会我碰巧拥有2台华硕笔记本电脑。 一个是四核i5,另一个是重型i7 octocore,都是64位机器。令我惊讶的是,它们都产生了相同的“独特”CPU ID ??? 所以这段代码对我不起作用,是否有其他方法可以获得独特的CPU ID或者我在这里做错了什么。 我希望得到的是一个特定于每个CPU的数字 string cpuID = string.Empty; ManagementClass mc = new ManagementClass(“win32_processor”); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if (cpuID == “”) { //Remark gets only the first CPU ID cpuID = mo.Properties[“processorID”].Value.ToString(); } } return cpuID;

使用WMI和C#的CPU使用率

如何使用WMI检索c#中的当前CPU使用率? 我见过很多使用性能计数器的post,但我需要一个可以与远程机器一起使用的解决方案。 我也在这里找到了一个VB解决方案,但如果可能的话,我更愿意在C#中实现。

c#Environment.ProcessorCount并不总是返回完整数量的逻辑处理器,为什么?

在我的机器上,Windows 7 – Enterprise 1 x Intel Xeon E5-1660 0 @ 3.30Ghz(激活超线程的6核/ CPU),Environment.ProcessorCount返回12,这是准确的。 在具有2 x Intel Xeon E5-2697 v3 @ 2.60GHz的Windows Server 2012上(启动了超线程的14核/ CPU(我认为因为任务管理器显示:2个插槽,28个核心,56个逻辑处理器)),Environment.ProcessorCount返回因为2x14x2 = 56,我们认为这是错误的。 为什么在Windows Server 2012 c#方法Environment.ProcessorCount没有返回正确数量的逻辑处理器? 作为附加信息,环境变量如下:NUMBER_OF_PROCESSORS = 28 更新2015-05-26: 在我的另一个问题中有更多关于此相关错误的详细信息/原因: 无法在C#应用程序中为我的线程使用多个处理器组 。 主要是我认为C#只使用一个处理器组。 有什么问题,在我们的服务器上,有2个处理器组,尽管只有56个逻辑处理器。 但是这个惠普客户顾问解释了为什么我们的服务器BIOS配置导致错误的窗口。

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

我正在开发一个C#程序,我有一个消耗太多CPU的function。 我想知道一种通过代码(不使用任何外部应用程序)来控制它的方法,并限制CPU使用率的百分比。 例如,如果它使用90%的CPU使用率,使我的应用程序仅消耗20%,即使它变慢。 它必须在应用程序内自动完成。 如果你提供课程,那就太棒了。

如何在c#中获取CPU频率

如何获得c#的CPU频率(例如:2Ghz)? 这很简单,但我没有在环境变量中找到它。 谢谢 :)

线程与单线程

是否始终保证multithreading应用程序比单线程应用程序运行得更快? 我有两个线程从数据源填充数据但不同的实体(例如:数据库,来自两个不同的表),似乎应用程序的单线程版本比具有两个线程的版本运行得更快。 为什么会这样? 当我看一下性能监视器时,两个cpu都很spikey? 这是由于上下文切换? 掌握CPU并充分利用它的最佳做法是什么? 我希望这不是模棱两可的。

使用C#识别CPU体系结构类型

我想检查用户正在运行的CPU架构,是i386还是X64或AMD64。 我想用C#做。 我知道我可以尝试WMI或注册表。 除了这两个之外还有其他方法吗? 我的项目面向.NET 2.0!

如何在C#中获得每个核心的CPU负载?

如何在C#中获得每核心CPU负载(quadcore cpu)? 谢谢 :)