Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Как узнать, сколько работает программа на Си ??  (Прочитано 2676 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AlbertAcid

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Иде-codelite,компилер,естественно, gcc.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
По времени?
time ./program

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Если из кода надо узнать, сколько по времени уже выполняется программа, то можно использовать функции clock() и times().

Оффлайн AlbertAcid

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Нет,меня интересует за сколько программа вычисляет

Оффлайн Invasion

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Нет,меня интересует за сколько программа вычисляет
Тогда используйте апишные функции и структуры...

time_t t = time(NULL);
struct tm timeStruct = *localtime(&t);
printf("now: %d-%d-%d %d:%d:%d\n", tm.tm_year + 1900, timeStruct.tm_mon + 1, timeStruct.tm_mday, timeStruct.tm_hour, timeStruct.tm_min, timeStruct.tm_sec);
найти разницу во времени думаю будет не сложно)

Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
Попробуйте это:
Если надо узнать время выполнения какого-либо кода.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main( void )
{
   time_t   start, finish;
   long loop;
   double   result, elapsed_time;

   printf( "Multiplying 2 floating point numbers 500 million times...\n" );
   
   time( &start );
   for( loop = 0; loop < 500000000; loop++ )
      result = 3.63 * 5.27; /* сюда можно подставить тестируемую функцию */
   time( &finish );

   elapsed_time = difftime( finish, start );
   printf( "\nProgram takes %6.0f seconds.\n", elapsed_time );
}


Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
/* сюда можно подставить тестируемую функцию */
Подсчёт грубоват. Не всякую функцию. Отдавайте себе отчет в погрешностях функций и как ходит время на компе. Таким методом можно разве приблизительно засечь сколько времени займёт архивация всего винчестера.
Хронометраж и профилирование кода тема отдельной статьи. Поищите, их предостаточно, в том числе на русском, с примерами. Даже здесь на форуме это уже обсуждали.

 

Страница сгенерирована за 0.073 секунд. Запросов: 25.