CPU核心数
Process.ProcessorAffinity 属性: public IntPtr ProcessorAffinity { get; set; }
属性值:位掩码,表示关联进程内的线程可以在其上运行的处理器。默认值取决于计算机上的处理器数。默认值为 2 n -1,其中 n 是处理器数。
在 Windows 2000 及更高版本中,进程中的线程可以在处理器间迁移,每次迁移都重新加载处理器缓存。在系统负荷繁重的情况下,指定哪个处理器运行特定的线程可以减少重新加载处理器缓存的次数,从而提高性能。处理器和线程之间的关联称为处理器关系。
每个处理器均表示为一位。位 0 是处理器一,位 1 是处理器二,依次类推。如果将某位设置为值 1,则将选择相应的处理器进行线程分配。
当您将 ProcessorAffinity 值设置为零时,操作系统的调度算法将设置线程的关联。当 ProcessorAffinity
值设置为任何非零值时,该值被解释为指定符合选择条件的处理器的位掩码。
设置CPU关联进程语句示例:
Process.GetCurrentProcess().ProcessorAffinity = (System.IntPtr)2;//2表示第2个CPU
程序示例:
using System;
using System.Diagnostics;
using
System.Text;
namespace caAfinity
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("当前CPU亲和力: {0}", Process.GetCurrentProcess().ProcessorAffinity);
Process.GetCurrentProcess().ProcessorAffinity = (System.IntPtr)2;
Console.WriteLine("当前CPU亲和力: {0}",
Process.GetCurrentProcess().ProcessorAffinity);
while (true)
{ }
}
}
}
测试双核多线程程序,未配置情况下Process.GetCurrentProcess().ProcessorAffinity=3,即11。
CPU使用情况:

设置Process.GetCurrentProcess().ProcessorAffinity = (System.IntPtr)2; 后CPU使用情况:

多线程经常会占满CPU,通过此方法可在多核系统中限制程序对CPU的占用。
详细测试需要用2U 2路4核服务器测试才能得出。
以下方法可以获取CPU个数,但无法获取核心个数。
using System.Management;
ManagementClass m = new ManagementClass("Win32_Processor");
ManagementObjectCollection mn = m.GetInstances();
CPU核心数的更多相关文章
- linux查询cpu核心数
linux怎么查询cpu核心数 1.查看逻辑CPU个数: #cat /proc/cpuinfo |grep "processor"|sort -u|wc -l24 2.由于有超线程 ...
- CPU个数、CPU核心数、CPU线程数
CPU个数.CPU核心数.CPU线程数 我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级.CPU从早期的单核,发展到现在的双核,多核.CPU除了核心数之外,还有线程数之 ...
- [转发]CPU个数、CPU核心数、CPU线程数
我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级.CPU从早期的单核,发展到现在的双核,多核.CPU除了核心数之外,还有线程数之说,下面文本就来解释一下CPU的核心数与 ...
- WIN7下查看CPU核心数
方法一 WIN+R输入cmd,输入wmic,输入cpu get *(注意空格),找到numberofcores和numberoflogicalprocessors,如下图为双核4线程,真核心数是2,使 ...
- linux查询操作系统信息,CPU物理个数,CPU核心数,逻辑CPU数,内存信息查询,硬盘信息查询
目录 一.前言 二.关于服务器基本配置 2.1 操作系统基本配置查询 2.2 CPU基本配置查询 2.3 内存基本配置查询 2.4 硬盘基本配置查询 一.前言 当我们接手了一台或者几台服务器的时候 ...
- 查看windows电脑CPU核心数,线程数
在Windows中,在cmd命令中输入“wmic”,然后在出现的新窗口中输入“cpu get *”即可查看物理CPU数.CPU核心数.线程数.其中, Name:表示物理CPU数 NumberOfC ...
- linux下查看cpu核心数
1.查看物理CPU个数 cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l 2.查看每个物理CPU含有的core个数 cat ...
- linux 查看cpu核心数
1.查看CPU个数 cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l 2.查看每个物理CPU含有的核心个数 cat /pr ...
- java获取CPU核心数
package ThreadTest; public class ThreadTest05 { public static void main(String[] args) { //获取CPU核心 S ...
随机推荐
- MVC 5 + EF 6
(一) ??运算符 C#中两个问号(“?”)的作用是判断“?”左边的对象是否为null,如果不为null则使用“?”左边的对象,如果为null则使用“?”右边的对象. (二)VS安装Entity Fr ...
- C#5 复习总结循环 迭代和穷举
一.章节复习: 循环.反复执行某段语句一种语法形式. 1.基本语法: for( 初始条件 ; 循环条件 ; 状态的改变 ) { 循环体 } 循环的四要素. 循环的执行过程.初始条件--循环条件--循环 ...
- linux 删除和安装java
一.jdk1.4卸载 由于redhat Enterprise 5 中自带安装了jdk1.4的,所以在安装jdk1.6前我把jdk1.4的卸了,步骤如下: 1.打开终端输入#rpm -qa | gr ...
- 基于jQuery的前端如何做到无伤迁移
首先,解释一下我个人对前端无伤迁移的理解,即移动端和PC端使用同一套代码,或者说原本在PC端运行得很完美的代码,只要修改少许,就可以在移动端完美运行. 当然,大部分的公司会专门为移动端设计了一套,同时 ...
- js删除数组里的某个元素
首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) { for (var i = ...
- Android 测试工具集01
Appium是一个支持原生,混合和移动web apps的开源的跨平台测试框架工具. ANDROID依赖 Android SDK API >= 17 (Additional features re ...
- Preorder, Inorder, and Postorder非递归总结
Preorder, Inorder, and Postorder Iteratively Summarization[1] 1.Pre Order Traverse public List<In ...
- c语言函数实现交换两个数的值
代码: #include <stdio.h> void swap(int x,int y) { int temp; temp = x; x = y; y = temp; printf(&q ...
- linux md5 加密字符串和文件方法
linux md5 加密字符串和文件方法 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意 ...
- SSH连接不上
网上查了 大概说,一要安装开启ssh服务 然后关掉防火墙 service sshd restart service iptables stop 可是我用了之后还是连接不上, 很郁闷. 我尝试着ping ...