Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] Environment.ProcessorCount

Ответить
Настройки темы
.NET - [решено] Environment.ProcessorCount

Аватара для SmallGod

Пользователь


Автор проектов


Сообщения: 76
Благодарности: 9


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: SmallGod
Дата: 20-10-2010
Что будет выдавать св-во "System.Environment.ProcessorCount" например на процессорах Intel Core i5/i7
кол-во ядер процессора или доступных потоков?

Если количество ядер, то как получить кол-во потоков?

Отправлено: 23:11, 19-10-2010

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Что значит, количество потоков? Какие потоки интересуют? Не совсем понятен вопрос

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 01:00, 20-10-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для SmallGod

Пользователь


Автор проектов


Сообщения: 76
Благодарности: 9

Профиль | Отправить PM | Цитировать


Цитата Delirium:
Что значит, количество потоков? Какие потоки интересуют? »
кол-во потоков (или логических процессоров) способных одновременно обрабатываться на процессоре.

Последний раз редактировалось SmallGod, 20-10-2010 в 02:23.


Отправлено: 01:35, 20-10-2010 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Думаю, речь про hyperthreading. Очевидно, такой перевод.

Отправлено: 06:01, 20-10-2010 | #4


Аватара для SmallGod

Пользователь


Автор проектов


Сообщения: 76
Благодарности: 9

Профиль | Отправить PM | Цитировать


Цитата Iska:
Думаю, речь про hyperthreading »
В общем да.

Отправлено: 07:49, 20-10-2010 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


В Wbem, начиная [к сожалению, только] с Vista [про корректные данные — см. обсуждение ниже], в класс «Win32_Processor» добавили соответствующие свойства:
читать дальше »
Цитата Win32_Processor Class:

NumberOfCores
Data type: uint32
Access type: Read-only

Number of cores for the current instance of the processor. A core is a physical processor on the integrated circuit. For example, in a dual-core processor this property has a value of 2. For more information, see Remarks.

Windows Server 2003, Windows XP, and Windows 2000: This property is not available.

NumberOfLogicalProcessors
Data type: uint32
Access type: Read-only

Number of logical processors for the current instance of the processor. For processors capable of hyperthreading, this value includes only the processors which have hyperthreading enabled. For more information, see Remarks.

Windows Server 2003, Windows XP, and Windows 2000: This property is not available.

Remarks
To determine the total number of processor instances associated with a computer system object, use the Win32_ComputerSystemProcessor association class.

To determine if hyperthreading is enabled for the processor, compare NumberOfLogicalProcessors and NumberOfCores. If hyperthreading is enabled in the BIOS for the processor, then NumberOfCores is less than NumberOfLogicalProcessors. For example, a dual-processor system that contains two processors enabled for hyperthreading can run four threads or programs or simultaneously. In this case, NumberOfCores is 2 and NumberOfLogicalProcessors is 4.

Последний раз редактировалось Iska, 22-10-2010 в 15:06. Причина: Зачеркнул некорректную информацию

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:41, 20-10-2010 | #6


Аватара для SmallGod

Пользователь


Автор проектов


Сообщения: 76
Благодарности: 9

Профиль | Отправить PM | Цитировать


Цитата Iska:
В Wbem, начиная [к сожалению, только] с Vista »
На сколько я знаю в XP SP3 тоже есть.
Так что же всё таки выдаёт System.Environment.ProcessorCount?

Отправлено: 20:58, 20-10-2010 | #7


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


SmallGod, Возвращает число процессоров на текущем компьютере.

http://msdn.microsoft.com/ru-ru/libr...ssorcount.aspx

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:27, 20-10-2010 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата SmallGod:
На сколько я знаю в XP SP3 тоже есть. »
Спасибо. Действительно так:
читать дальше »
Код: Выделить весь код
wmic path Win32_Processor get NumberOfLogicalProcessors,NumberOfCores
NumberOfCores  NumberOfLogicalProcessors
2              2
Код: Выделить весь код
wmic computersystem get NumberOfProcessors,NumberOfLogicalProcessors
NumberOfLogicalProcessors  NumberOfProcessors
2                          1

Что касается конкретно Windows XP, то судя по KB936235: The number of physical hyperthreading-enabled processors or the number of physical multicore processors is incorrectly reported in Windows XP, включённому в SP3: Список исправлений, включенных в Windows XP с пакетом обновления 3, эти свойства действительно появились в SP3/SP2+KB936235:
читать дальше »
Цитата KB936235:

Before you apply this hotfix, the WMI classes and the WMI properties exhibit the following behavior.

Win32_ComputerSystem

* The NumberOfProcessors property returns the number of logical processors that are available on the system.
* The NumberOfLogicalProcessors property is not available.

Win32_Processor

* The NumberOfLogicalProcessors property is not available.
* The NumberOfCores property is not available.
* The number of Win32_Processor instances that are returned is equal to the number of logical processors that are available on the system.

After you apply this hotfix, the WMI classes and the WMI properties exhibit the following behavior.

Win32_ComputerSystem

* The NumberOfProcessors property returns the number of physical processors that are available on the system.
* The NumberOfLogicalProcessors property returns the number of logical processors that are available on the system.

Win32_Processor

* The NumberOfLogicalProcessors property returns the number of logical processors on the current instance.
* The NumberOfCores property returns the number of cores on the current instance.
* The number of Win32_Processor instances that are returned is equal to the number of physical processors that are available on the system.

To determine whether hyperthreading is enabled for the processor, compare the value of the NumberOfCores property to the value of the NumberOfLogicalProcessors property. If hyperthreading is enabled in the basic input/output system (BIOS) for the processor, the value of the NumberOfCores property is less than the value of the NumberOfLogicalProcessors property.

For example, assume that a dual-processor system contains two processors that are each enabled for hyperthreading. This system can run four threads or four programs at the same time. In this case, the value of the NumberOfCores property is 2, and the value of the NumberOfLogicalProcessors property is 4.
Возможно, есть аналогичный же HotFix и под «Windows Server 2003»?!
Добавлено: ага, вот и аналогичная же статья, KB932370: The number of physical hyperthreading-enabled processors or the number of physical multicore processors is incorrectly reported in Windows Server 2003.


Что касается «System.Environment.ProcessorCount» aka «%NUMBER_OF_PROCESSORS%», то опять же, речь идёт, скорее, о логических процессорах:
Код: Выделить весь код
set num
NUMBER_OF_PROCESSORS=2
Впрочем, я не представляю, где реально можно посмотреть на машину с XP на многопроцессорной машине. Разве что попробовать проделать сию установку специально.

P.S. Все вышеприведённые примеры — для «Windows XP SP3».

Последний раз редактировалось Iska, 21-10-2010 в 00:22.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:02, 21-10-2010 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] Environment.ProcessorCount

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Java SE Runtime Environment (JRE) 6 Update 18 OSZone Software Новости программного обеспечения 0 22-01-2010 12:30
[решено] Environment Variables semiono AutoIt 6 10-05-2009 14:49
Rapid Environment Editor - визуальный редактор переменных окружения ShaRP Программное обеспечение Windows 0 08-01-2008 19:31
новая идея Mozilla Desktop Environment must die Новости и флейм из мира *nix 3 27-03-2007 22:02




 
Переход