forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Определение частоты процессора (http://forum.boolean.name/showthread.php?t=15289)

maestrodan 14.08.2011 11:10

Определение частоты процессора
 
Здравствуйте, подскажите пожалуйста, как можно написать в мп прогу для определения частоты процессора.
а ещё, есть ли какая-нибудь процедура для перевода из риала в текст?

PacMan 14.08.2011 12:19

Ответ: Определение частоты процессора
 
Непосредственно частоту процессора узнать из мидлета нельзя.
Дело в том, что java-приложение выполняется не процессором, а ява-машиной, которая уже выполняется процессором. То есть мы можем узнать только быстродействие java-машины.
В принципе можно реализовать какой-то единый алгоритм и высчитывать быстродействие в неких условных единицах.

PassCall 15.08.2011 23:51

Ответ: Определение частоты процессора
 
Подскажу даже:

for i:=1 to 50000 do
a:=sin (123);

засекаеш время до, затем после и отнимеш.

PassCall 15.08.2011 23:56

Ответ: Определение частоты процессора
 
Для перевода из реал в текст есть вроде realtostring, но как ей пользоваться, даже Вассерман не знает.

Могу разве что предложить такое:
Код:

a:=trunc(real_number-frac(real_number));//убираем дробь
b:=trunc(frac(a)*100.0);//оставляем только дробь. 100 имеет два нуля, значит будет 2 знака после запятой.
S:=''+a+'.'+b;//целое число+точка+дробь. вуаля!


maestrodan 17.08.2011 17:41

Ответ: Определение частоты процессора
 
насчет частоты проца, PassCall, не совсем понял, можно подробнее?
насчет realtostring вроде нарыл
var
R:real;
s:string
begin
s:=integerToString(trunc(R))+','+integerToString(t runc(frac(R)*1000));
end;

PassCall 17.08.2011 19:15

Ответ: Определение частоты процессора
 
Цитата:

Сообщение от maestrodan (Сообщение 199169)
var
R:real;
s:string
begin
s:=integerToString(trunc(R))+','+integerToString(t runc(frac(R)*1000));
end;

Не совсем хорошо. Ибо trunc округляет.

Поэутому из числа 17.85 получиться "18,8500".

Правильнее:
s:=integerToString(trunc(R-frac(R)))+','+integerToString(trunc(frac(R)*1000)) ;


А начет определение частоты:
Код:

program speed_o_meter;
var
timer1,timer2,i:integer;
a:real;

begin
timer1:=GetRelativeTimeMs;

for i:=1 to 50000 do
a:=sin (i);

timer2:=GetRelativeTimeMs;
timer1:=timer2-timer1;
drawtext ('Время: '+integertostring(timer1)+' миллисек.',0,0);
repaint;
delay (1000);
end.

Число указывает за сколько миллисекунд высчиталось 50000 вычислений синуса. Незнаю сколько тактов занимает вычисление синуса, поэтому частоту в герцах не вычислю.

maestrodan 18.08.2011 00:54

Ответ: Определение частоты процессора
 
Спасибо за подсказки!:)


Часовой пояс GMT +4, время: 01:32.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot