示例#1
0
        public static int GetLogicalCoreCount(this LogicalProcessorInfo processorInfo)
        {
            ulong procMask = 0;

            foreach (LogicalProcessorCoreInfo coreInfo in processorInfo.Cores)
            {
                procMask |= coreInfo.ProcessorMask;
            }

            int coreCount = UInt64Util.CountBits(procMask);

            Debug.Assert(coreCount == Environment.ProcessorCount);
            return(coreCount);
        }
示例#2
0
        public static int GetPhysicalCoreCount(this LogicalProcessorInfo processorInfo)
        {
            int coreCount = 0;

            foreach (LogicalProcessorCoreInfo coreInfo in processorInfo.Cores)
            {
                if (coreInfo.SharesFunctionalUnits)
                {
                    ++coreCount;
                }
                else
                {
                    int coreProcessorCount = UInt64Util.CountBits(coreInfo.ProcessorMask);
                    coreCount += coreProcessorCount;
                }
            }

            return(coreCount);
        }