Программирование на Delphi - обмен опытом / Процессор

© Зайцев Олег 1998-2004
Лучшая портативная техника. Плееры Камеры Телефоны Компьютеры
Покупателям, пришедшим на www.porta.ru по этой ссылке - дополнительная скидка 1%
Железо | Система | WEB | Компоненты | Графика | Ссылки | Мультимедиа | Сети | Прочее | Реестр | Литература

Статистика

Процессор

Рекомендую:
Главная страница \ Железо \ Процессор

  • Процессор

    Процессор

    Как назначить процессор, на котором следует выполнять поток * * Задать вопрос Наверх
    В мультипроцессорной системе (на базе нескольких процессоров или процессора с технологией HyperThreading) можно указать системе, на каком процессоре рекомендуется выполнять поток. Реализуется это при помощи функции API SetThreadIdealProcessor:
    function SetThreadIdealProcessor(hThread: THandle; dwIdealProcessor: DWORD): BOOL; 
    Thread - Handle потока, для текущего потока приложения его можно узнать через GetCurrentThread
    dwIdealProcessor - номер процессора (отсчет идет с 0)

    Я проверял работу этой функции на мультипроцессорном сервере и моем домашнем ПК (на нем Intel Pentium 4 Prescott 2.8 ГГц, HT) - работает отлично, приложение действительно загружает только указанный процессор. Проверку я проводил с помощью простейшего примера:
    begin
     // Выбор процессора
     SetThreadIdealProcessor(GetCurrentThread, 1);
     // Мертвый цикл
     WHILE TRUE DO ;
    end;
    

    Определение информации о процессоре * W-NT Задать вопрос Наверх
    Получить подробную информацию о процессоре можно, проанализировав ключ реестра HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\n
    где n - номер процессора (отсчет идет с 0)
    В ключе есть ряд параметров:

    Аналогично можно анализировать ключ HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\FloatingPointProcessor\n для получение информации мат. сопроцессоре (n - номер)

    Определение информации о процессоре через GetSystemInfo * * Задать вопрос Наверх
    Функция API GetSystemInfo позволяет узнать несколько параметров процессора. Функция имеет вид:

    procedure GetSystemInfo(var lpSystemInfo: TSystemInfo); stdcall;
    
    Функция заполняет поля структуры lpSystemInfo, в частности, там есть поля: При этом следует учесть, что процессоры с технологией HT считаются как два процессора (при условии, что включена поддержка HT)


    © Зайцев Олег, "Программирование на Delphi - обмен опытом" 1999-2004. При использовании любых материалов данного сайта необходимо указывать источник информации. Дата обновления: 22.11.2004. Сайт размещен на хостинге AGAVA - Хостинг от AGAVA.ru