Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Zoom Evstrahiev
Цитата:
Хех. Молчат 8). (Затишье перед бурей? )
При склейке сообщений, уведомление об ответе не приходит.
Работает все ОК, но вопрос такой, если ты уже умеешь считывать кеш, то почему не делаешь различия между Торобред, Аплбред? И почему измерение частоты в трид не засунул, а?
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Zoom Evstrahiev Все нормально на Athlon XP Бартон , 2.3Гц (3400+?) , только доведи до уам плиз real time, тормззит безбожно и это на 2.3ghz!!
И еще, COde Name - Athlon (Barton 0.13), это не правильно раз уж хочеш точно приписывай Ahtlon XP.
Ну и уж если убивать CPUz и WCPUID, То добавь инфу по флагам процессора как минимум, я уже не говорю инфу о чипсете
Добавлено спустя 1 минуту, 24 секунды: Ты там что частоту в рейал тайм прямо таки чтоли проверяеш? Достаточно и 100 раз в секунду !
Member
Статус: Не в сети Регистрация: 09.01.2005 Откуда: Питер
Альфа 0.1.5 [*] Определение частоты процессора выведено в отдельный поток.
[*] Незначительные изменения в интерфейсе.
Частота проверяется (и проверялась) 1 раз в секунду. 8) Почему загрузка 100% не понимаю сам.
С кэшем я пока не мучился. Он сейчас определяется через глючную ф-цию. Позже сделаю определение, в зависимости от Code Name (т.е. от Family и Model)
Господа, сейчас мне нужно набрать точно определённую команду бета-тестеров. Хотябы по 1 человеку на разные типы процов.
Чтобы можно было точно проверить каждый релиз на всех типах платформ.
Ещё у меня вопрос:
В AMD code name определяется по F,M,S extended и вроде бы всё работает. Интеловские процы я пока определяю так же. Судя по последнему скрину - неправильно, и нужно опредеоять их по простым F,M,S. Или так только на Целиках?
To Ray Adams: См. функцию определения частоты выше. Как она работает, я даже не особо разбирался. Выяснил только, что точнее всех остальных. Почему такой загруз - непонятно. Всё висит на таймере с 1000 интервалом.
_________________ Rara temporum felicitas, ubi quae velis sentire et quae sentias dicere licet!
Member
Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
Zoom Evstrahiev
Цитата:
Господа, сейчас мне нужно набрать точно определённую команду бета-тестеров. Хотябы по 1 человеку на разные типы процов.
Могу предложить Celeron1700
А ты с ассемблером как? Тут вроде ссылки выкладывались на документ со списком команд, которые надо в регистры пихать и со списком резалтов. Потом резалт разбираеш и получаеш размер кэша, степпинг и еще туеву хучу всяких параметров.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Athlon ThoroughBred-B к вашим услугам
Цитата:
А ты с ассемблером как? Тут вроде ссылки выкладывались на документ со списком команд, которые надо в регистры пихать и со списком резалтов. Потом резалт разбираеш и получаеш размер кэша, степпинг и еще туеву хучу всяких параметров.
Даже ассемблер знать не нужно, просто уметь отличать бит от байта PS Zoom Evstrahiev с появлением каждой новой версии, лучше выкладывай ссылку на нее в посте.
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
по последней бетке. Сам прога теперь не тормозит при ealtime, но зато жрет нафиг 100% процессорного времени. Ты там точно что-то левое делаеш
Добавлено спустя 1 минуту, 36 секунд: Если ты считываеш 1 раз в секунду таких тормозов быть просто не дожно. Проверь свой код, тем более если ты посадил на поток, то как ты там делаеш задержку между считываниями то? Давай кусок кода, уверен на все 100, что имено он и тормозит. Кстати попробуй приоритет потоку выставить в Idle
Member
Статус: Не в сети Регистрация: 09.01.2005 Откуда: Питер
to GerK: Предыдущих релизов не осталось to Lord_of_Darkness: Я собственно и ввёл поле "Code Name" после изучения инфы по тем линкам.
to Daemon: Разброс появился после повешения процедуры на поток.
Насчёт бета-тестинга - кто назвался - заношу в список. Теперь от вас необходимы скриншоты после каждого релиза Lord_of_Darkness - Celeron (whilamette)
Daemon - Athlon XP (ThoroughBred-B)
GerK - А64 2800+
to Ray Adams:
Код:
... var th: cardinal; h1: integer; ... /////Округление дробей function RoundEx(X: Double; Precision: Integer): Double; { Precision : 1 - до целых, 10 - до десятых, 100 - до сотых... } var ScaledFractPart, Temp: Double; begin ScaledFractPart := Frac(X) * Precision; Temp := Frac(ScaledFractPart); ScaledFractPart := Int(ScaledFractPart); if Temp >= 0.5 then ScaledFractPart := ScaledFractPart + 1; if Temp <= -0.5 then ScaledFractPart := ScaledFractPart - 1; RoundEx := Int(X) + ScaledFractPart / Precision; end;
/////// CPU CLOCK function RdTSC : int64; register; asm db $0f, $31 end;
function GetCyclesPerSecond : double; var hF, T, et, sc : int64; begin QueryPerformanceFrequency(hF); // HiTicks / second QueryPerformanceCounter(T); // Determine start HiTicks et := T + hF; // (Cycles are passing, but we can still USE them!) sc := RdTSC; // Get start cycles repeat // Use Hi Perf Timer to loop for 1 second QueryPerformanceCounter(T); // Check ticks NOW until (T >= et); // Break the moment we equal or exceed et Result := (RdTSC - sc) / 1000000; // Get stop cycles and calculate result end;
procedure cpuclockinfo; begin form1.cpuclock.Text:=double2str(RoundEx(GetCyclesPerSecond,1000))+' Mhz'; end;
procedure TForm1.CheckBox1Click(Sender: PObj); begin if checkbox1.Checked=true then timer1.Enabled:=true else begin timer1.Enabled:=false; terminatethread(h1, 0) end; end;
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Zoom Evstrahiev Блин ну ты выдал! используется таймер чтобы запускать поток Твоя процедура проверки скорости тратит 1000 тиков, зачем тебе настолько супер точно проверять ??? До 3 знака после запятой?
Посмотри как пашет WCPUID! Там real time не тормозит совсем Так что ищи лучше другой вариант. Тебе уже дали несколько вариантов, что мешает попробовать их?
Member
Статус: Не в сети Регистрация: 09.01.2005 Откуда: Питер
Альфа релиз 0.1.6 http://rulezmaker.fatal.ru/cpu.exe Переделал весь алгоритм вычисления частоты. Вместо высокоточного таймера использую Sleep. За счёт этого избавился от таймера. Тормозов нет - точность упала.
Вот код в результате:
Код:
function RdTSC : int64; register; asm db $0f, $31 end;
procedure cpuclockinfo; var et, sc : int64; t:double; begin repeat sc := RdTSC; sleep(1000); et:=RdTSC; T := (et - sc) / 1000000; form1.cpuclock.Text:=double2str(RoundEx(T,1000))+' Mhz'; until 1=0; end;
_________________ Rara temporum felicitas, ubi quae velis sentire et quae sentias dicere licet!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения