November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Saturday, January 8th, 2005 12:48 am
маленькая радость. После пары месяцев мучений я, наконец, научился переключать каналы на своем любимом ресивере.
(Не, с пульта это каждый дурак может, а я теперь программным путём умею).
В связи с чем появилось желание замерить время переключения на канал. Чем в линуксе можно померять время более точно, чем в секундах? Не изобрели ли чего нового, кроме gettimeofday() ?
Friday, January 7th, 2005 02:18 pm (UTC)
В горячо мной любимом /bin/tcsh для этого есть встроенная команда time. Или тебе внутри программы?
Friday, January 7th, 2005 02:25 pm (UTC)
Если внутри программы - смотри в сторону getitimer() и profil()
Friday, January 7th, 2005 11:25 pm (UTC)
Не, это не то. Мне таймеры не нужны, хочется просто замерить время выполнения синхронной операции.
Friday, January 7th, 2005 02:34 pm (UTC)
Есть функция clock_gettime(), которая по идее круче чем gettimeofday().
Saturday, January 8th, 2005 05:17 am (UTC)
Прилетела птичка обломинго:
/tmp/ccWV0aiG.o(.text+0x127c): In function `tuneTo':
: undefined reference to `clock_gettime'


Но и там, где она есть, выглядит она довольно своеобразно :))
int
clock_gettime (clockid_t clock_id, struct timespec *tp)
{


  struct timeval tv;
  int retval = -1;


  switch (clock_id)
    {
    case CLOCK_REALTIME:
      retval = gettimeofday (&tv, NULL);
      if (retval == 0)
        /* Convert into `timespec'.  */
        TIMEVAL_TO_TIMESPEC (&tv, tp);
      break;
Friday, January 7th, 2005 11:42 pm (UTC)
А что, аналога *BSD'шного getmicrouptime(9) нету?
Saturday, January 8th, 2005 12:08 am (UTC)
Может и есть, только я не знаю, как его зовут
Saturday, January 8th, 2005 07:23 am (UTC)
если ты про пингвинукс, то gettimeofday возваращает живую стркутуру согласно стандарту, то есть с точностью до мкс.
http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/time.h.html
большая точность тебе не нужна, т.к. я думаю ты вряд ли в kernel space полезешь
Saturday, January 8th, 2005 08:04 am (UTC)
Ну да, я ее и попробовал. Получается порядка 175-180 тысяч микросекунд. С бОльшей точностью мерять бессмысленно.
Sunday, January 9th, 2005 07:39 pm (UTC)
можно из ядра заэкспортить функцию и посчитать в тиках ядра :)
Sunday, January 9th, 2005 08:01 pm (UTC)
мне не надо в тиках, мне надо в абсолютных единицах. Как ты думаешь, сколько здесь один тик?
processor       : 0
cpu             : STB04xxx
clock           : 252MHz
revision        : 8.209 (pvr 4181 08d1)
bogomips        : 250.88
machine         : IBM Redwood5
plb bus clock   : 63MHz

Sunday, January 9th, 2005 08:07 pm (UTC)
а тики это не то. в 2.6.x тик это одна тысячная секунды :)