174 / 0 / 0
Регистрация: 10.09.2022
Сообщений: 304
1

Как узнать количество физических ядер

25.01.2023, 12:07. Показов 1646. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как узнать количество физических ядер процессора
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.01.2023, 12:07
Ответы с готовыми решениями:

Как узнать битность системы и количество ядер процесора?
Буду рад если кто то поделится кодом

Нужно узнать количество ядер в системе
Пока получается что-то типо такого... PSYSTEM_LOGICAL_PROCESSOR_INFORMATION Buffer; PDWORD...

Программно узнать количество физических ядер процессора
Есть ли простой способ получить количество физических ядер в системе?

Как посмотреть реальное количество физических ядер?
Народ подскажите ото я запутался совсем. Мне нужно определить количество ядер на текущей ос Ubuntu...

12
1664 / 1190 / 604
Регистрация: 17.03.2022
Сообщений: 3,738
25.01.2023, 12:31 2
В C/C++ языковые средства для этого не предусмотрены. Соответственно, ответ зависит как минимум от ОС, на которой вам это нужно.
0
174 / 0 / 0
Регистрация: 10.09.2022
Сообщений: 304
25.01.2023, 17:23  [ТС] 3
windows
0
Software Engineer
290 / 274 / 53
Регистрация: 23.09.2014
Сообщений: 885
25.01.2023, 17:58 4
Цитата Сообщение от gdfgnggf Посмотреть сообщение
windows
1. https://learn.microsoft.com/ru... systeminfo
2. Прочитать значение переменной окружения NUMBER_OF_PROCESSORS
0
174 / 0 / 0
Регистрация: 10.09.2022
Сообщений: 304
25.01.2023, 18:18  [ТС] 5
а не знаете как узнать сколько кэша у процессора?
0
34 / 22 / 13
Регистрация: 20.05.2022
Сообщений: 414
25.01.2023, 23:39 6
gdfgnggf, а вбить в гугле модель процессора и получите всю необходимую информацию.
0
694 / 301 / 77
Регистрация: 07.01.2023
Сообщений: 1,254
26.01.2023, 07:41 7
Цитата Сообщение от gdfgnggf Посмотреть сообщение
а не знаете как узнать сколько кэша у процессора?
Внимательно изучаем WMI, конкретно Win32_Processor
0
174 / 0 / 0
Регистрация: 10.09.2022
Сообщений: 304
26.01.2023, 20:00  [ТС] 8
там нету на c++ примеров не могли бы вы показать
0
694 / 301 / 77
Регистрация: 07.01.2023
Сообщений: 1,254
27.01.2023, 21:14 9
Цитата Сообщение от gdfgnggf Посмотреть сообщение
там нету на c++ примеров не могли бы вы показать
Вас в гугле забанили? Например вот, готовая либа работы с WMI
0
5 / 4 / 1
Регистрация: 15.01.2020
Сообщений: 13
10.02.2023, 15:43 10
Вы можете использовать функцию GetSystemInfo из Windows API для получения информации о системе, в том числе и о количестве ядер процессора.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <windows.h>
#include <iostream>
 
int main()
{
    SYSTEM_INFO sysInfo;
    GetSystemInfo(&sysInfo);
 
    // Количество физических ядер процессора
    int numPhysicalCores = sysInfo.dwNumberOfProcessors;
 
    std::cout << "Number of physical cores: " << numPhysicalCores << std::endl;
 
    return 0;
}
GetSystemInfo заполняет структуру SYSTEM_INFO информацией о системе, в том числе и о количестве ядер процессора. Значение dwNumberOfProcessors в структуре SYSTEM_INFO указывает на количество ядер процессора.
0
174 / 0 / 0
Регистрация: 10.09.2022
Сообщений: 304
10.02.2023, 21:36  [ТС] 11
это не ядра а потоки выводяться
0
5 / 4 / 1
Регистрация: 15.01.2020
Сообщений: 13
10.02.2023, 23:29 12
Ошибся((( Тогда через функцию GetLogicalProcessorInformation из Windows API. Она возвращает информацию о логических процессорах в системе.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <windows.h>
#include <iostream>
#include <tuple>
 
std::tuple<DWORD, DWORD> GetPhysicalProcessorCount()
{
    DWORD bufferSize = 0;
    GetLogicalProcessorInformation(NULL, &bufferSize);
 
    SYSTEM_LOGICAL_PROCESSOR_INFORMATION *buffer = (SYSTEM_LOGICAL_PROCESSOR_INFORMATION *)malloc(bufferSize);
    GetLogicalProcessorInformation(buffer, &bufferSize);
 
    DWORD processorCoreCount = 0;
    DWORD processorPackageCount = 0;
 
    DWORD byteOffset = 0;
    SYSTEM_LOGICAL_PROCESSOR_INFORMATION *ptr = buffer;
    while (byteOffset < bufferSize)
    {
        if (ptr->Relationship == RelationProcessorCore)
        {
            processorCoreCount++;
            if (ptr->ProcessorCore.Flags)
            {
                processorPackageCount++;
            }
        }
        byteOffset += sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION);
        ptr++;
    }
 
    free(buffer);
 
    return std::make_tuple(processorCoreCount, processorPackageCount);
}
 
int main()
{
    DWORD numPhysicalCores = 0;
    DWORD numPhysicalPackages = 0;
    std::tie(numPhysicalCores, numPhysicalPackages) = GetPhysicalProcessorCount();
 
    std::cout << "Number of physical cores: " << numPhysicalCores << std::endl;
    std::cout << "Number of physical packages: " << numPhysicalPackages << std::endl;
 
    return 0;
}
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
4294 / 2151 / 966
Регистрация: 01.06.2021
Сообщений: 7,426
13.02.2023, 14:13 13
gdfgnggf, с помощью самих средств языка С++ и для целей программирования достаточно узнать это:
C++
1
2
#include <thread>
unsigned cores = std::thread::hardware_concurrency();
0
13.02.2023, 14:13
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.02.2023, 14:13
Помогаю со студенческими работами здесь

i7 3770 видит 2 физических ядра и 4 потока из 4 физических ядер и 8 потоков
i7 3770 видит 2 физических ядра и 4 потока из 4 физических ядер и 8 потоков Выставлял настройки в...

Как узнать количество ядер CUDA?
как узнать количество CUDA ядер? видеокарта &quot;Gigabyte GeForce GTX 660&quot; (GV-N660OC-2GD) на сайте...

Узнать количество ядер процессора
Какой в питоне правильный способ узнать количество ядер текущей машины?

Узнать количество доступных ядер/потоков на Linux
Доброго времени! Для венды сейчас юзаю такой код: function GetNumThreads:integer; var...

Один из 4 физических ядер грузится, непонятно от чего(
Проблема у меня нынче такая: грузится одно из 4 физических ядер, поставлена прога раскидывающая...

Рассчитать начальное количество ядер N0 , число распавшихся ядер ΔN, а также долю распавшихся ядер (в %)
5. Изотоп 222 ....................Ra ................88 испытывает радиоактивный распад. Масса...

Как узнать сколько ядер на процессоре
Извините за такой нубский вопрос, на форуме чет не нашел ничего на эту тему. В общем, как узнать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru