1.win10怎么开启cpu核心数
网络上的各种伪技巧多得很,而这个就是比较典型的。在Win7帮助文件中对于msconfig的高级引导选项-处理器数是这样解释的:限制在多处理器系统上使用的处理器数。如果选中该复选框,则系统仅使用下拉列表中的处理器数引导。 根据实际的测试,在双核CPU的情况下,把CPU核心设置为4个,反复测试了6次,启动时间的误差在2秒之间,可以说是基本没有任何提高启动速度的作用,而如果把这个CPU个数设置为1,那么启动速度会慢8-10秒左右。所以说,根据各种信息来看,这个选择只是来控制系统对于CPU个数的控制,对于双核CPU来说,根本没有必要进行设置,因为Win7是原生支持多核心CPU的。 ●查看引导高级选项 真正加快启动速度的方法除开升级硬件之外,减少开机启动的程序,以及删除系统的一些垃圾文件才是正确的方法,当然同样可以在“MSCONFIG”中来设置,很多优化软件都有这个功能,自从Win98时代就有的老设置了。
查看原帖>>
2.如何让程序运行在所有CPU核心上
实现方法进程与指定cpu绑定 :(GetCurrentProcess(),dwMask); 线程与指定cpu绑定: SetThreadAffinityMask(GetCurrentThread(),dwMask);dwMask为CPU序号的或运算值:1(0001) 代表只运行在CPU1,2(0010)代表只运行在CPU2,3(0011)代表可以运行在CPU1和CPU2 ,以此类推。
设置之前最好判断一下系统有几个CPU: SYSTEM_INFOSystemInfo; GetSystemInfo(&SystemInfo);CPU个数:SystemInfo.dwNumberOfProcessors 当前启用的CPU序号: SystemInfo.dwActiveProcessorMask ,Mask representing the set of processors configured into the system. Bit 0 is processor 0; bit 31 is processor 31. CPU亲缘性介绍 按照默认设置,当系统将线程分配给处理器时,Windows使用软亲缘性来进行操作。这意味着如果所有其他因素相同的话,它将设法在它上次运行的那个处理器上运行线程。让线程留在单个处理器上,有助于重复使用仍然在处理器的内存高速缓存中的数据。 有一种新的计算机结构,称为NUMA(非统一内存访问),在该结构中,计算机包含若干块插件板,每个插 件板上有4个CPU和它自己的内存区。 当CPU访问的内存是它自己的插件板上的内存时,NUMA系统运行的性能最好。如果CPU需要访问位于另一个插件板上的内 存时,就会产生巨大的性能降低。在这样的环境中,就需要限制来自一个进程中的线程在共享同一个插件版的CPU上运行。为了适应这种计算机结构的需要,Windows允许你设置进程和线程的亲缘性。换句话说,你可以控制哪个CPU能够运行某些线程。这称为硬亲缘性。请注意,子进程可以继承进程的亲缘性。
注意:
(1)无论计算机中实际拥有多少个CPU,Windows98及以前系统只使用一个CPU,上述API不被支持。
(2)在大多数环境中,改变线程的亲缘性就会影响调度程序有效地在 各个CPU之间移植线程的能力,而这种能力可以最有效地使用CPU时间。 应用场景举例: 将UI线程限制在一个CPU,将其他实时性要求较高的线程限制在另一个CPU。这样,当UI需要占用大量CPU时间时,就不会拖累其他实时性要求较高的线程的执行 。同样可以将UI线程与一些优先级不高但耗时的异步运算线程设置在不同CPU上,避免UI给人卡顿的感觉。
转载请注明出处windows之家 » win10设置程序cpu核心