Естественно работать не будет Специально для вас
а почему ж "естественно"?
Пользователь решил продолжить мысль 26 Февраля 2012, 19:04:02:
Дописал я свой скрипт по тестированию производительности компьютера .
вообще то это очень ненадёжный способ определения частоты процессора
Желательно закрыть все программы
вот именно из-за этого, потому что "закрыть все программы" - это невозможно...
но даже не только из-за этого.
У меня на Intel Core 2 Duo результат 1889
вопрос не в том, сколько там и у кого получается, а в том, насколько это согласовывается с данными о частоте процессора вашего Linux ... как-то так:
[olej@notebook Загрузки]$ cat /proc/cpuinfo | grep 'model name'
model name : Genuine Intel(R) CPU T2300 @ 1.66GHz
model name : Genuine Intel(R) CPU T2300 @ 1.66GHz
Пользователь решил продолжить мысль 26 Февраля 2012, 19:21:54:
я вам для сравнения код на С выкину, который на 1 сек. (не 1 мин.) интервале обычно даёт значение процессорной частоты до 4-го знака - сверьте его с тем, что у вас получается:
#include <stdio.h>
#include <stdlib.h>
unsigned long long rdtsc( void ) {
unsigned long long int x;
asm volatile ( "rdtsc" : "=A" (x) );
return x;
}
#define NUMB 10
unsigned calibr( int rep ) {
unsigned n, m, sum = 0;
n = m = ( rep >= 0 ? NUMB : rep );
while( n-- ) {
unsigned long long cf, cs;
cf = rdtsc();
cs = rdtsc();
sum += (unsigned)( cs - cf );
}
return sum / m;
}
unsigned long proc_hz( void ) {
time_t t1, t2;
unsigned long long cf, cs;
time( &t1 );
while( t1 == time( &t2 ) ) cf = rdtsc();
while( t2 == time( &t1 ) ) cs = rdtsc();
return (unsigned long)( cs - cf - calibr( 1000 ) );
}
int main( int argc, char *argv[] ) {
printf( "processor speed: %f MHz\n", (double)proc_hz() / 1E6 );
return EXIT_SUCCESS;
};
а вот несколько последовательных выполнений:
[olej@notebook time]$ ./clock
processor speed: 1662.440458 MHz
[olej@notebook time]$ ./clock
processor speed: 1662.424898 MHz
[olej@notebook time]$ ./clock
processor speed: 1662.528298 MHz
повторяемость последовательных результатов, их дисперсия, может, в какой-то мере, служить показателем устойчивости метода.
P.S. то что там показано, вызов rdtsc() позволяет измерять временные интервалы в
наносекундном диапазоне и с наносекундной точностью (на процессорах x86 Pentium II и старше, ге есть такая команда) - может пригодится
Пользователь решил продолжить мысль 26 Февраля 2012, 19:40:25:
Просьба протестить
сделал я "протестить" (внеся минимальные изменения в скрипт):
[olej@notebook speed0]$ time ./test.sh
Тестирование скорости ...
-------------------
Результат: 26773
-------------------
real 0m58.279s
user 0m11.718s
sys 0m39.406s
- но о чём должна говорить эта
совершенно условная цифра?