Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Програмирование платформенно-независимых систем > Trolltech Qt
Перезагрузить страницу Как узнать чистое время выполнения процесса
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
evCo evCo вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.07.2008
По умолчанию Как узнать чистое время выполнения процесса - 09.07.2008, 23:45

Недавно начал пользоваться Qt. И вот появилось пару вопросов по процессам.

1. Можно узнать "чистое" время выполнения процеса? Тоесть сколько времени выполнялся процесс с точностью до сотых секунды. Вариант
Код:
float start = time();
porcess->start();
while(process->exec());
printf("Process time: %f\n", time() - start);
не подходит тк выдает разное время при одинаковых запусках, время отличаеться на сотые секунды но в моем случае это критично. Когдато в визуалке я делал подобное так:
Код:
    FILETIME KernelTime, UserTime;
    union {
        LONGLONG li;
        FILETIME ft;
    } CreateTime, ExitTime, ElapsedTime;
    SYSTEMTIME ElTiSys, UsTiSys, KeTiSys;
...
    if(GetProcessTimes(pi.hProcess, &CreateTime.ft, &ExitTime.ft, &KernelTime, &UserTime)) {
        FileTimeToSystemTime(&UserTime,       &UsTiSys);
        f_execute_time  = UsTiSys.wSecond + ((float)(UsTiSys.wMilliseconds) / 1000);
    }
2. И еще момент, можно ограничить функционал выполняемой программы? То есть запретить ей некоторые действия, запись в файл использование портов и тд... Перехват WinAPI подойдёт но я так и не нашел нормального примера или статьи по перехвату.

Пишу в QDevelop, Qt 4.3.3 под winxp
Ответить с цитированием
  (#2 (permalink)) Старый
Mixolap Mixolap вне форума
Member
 
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.09.2007
По умолчанию 11.07.2008, 19:06

Код:
QTime timer;
timer.start();
QProcess().start("dir");
qDebug() << "Process time:" << timer.ellapsed();
Ответить с цитированием
  (#3 (permalink)) Старый
evCo evCo вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.07.2008
По умолчанию 11.07.2008, 20:48

Mixolap: Cпасибо, но я писал, что подобный вариант не прокатит. При разной загруженности процесса результаты слишком разные.
Код:
int main(int args, char *arg[]) {
    QTime timer;
    timer.start();
    QProcess pi;
    pi.start("c:\\1.exe");
    pi.waitForFinished();
    qDebug("Process time: %d\n", timer.elapsed());
    return 0;
}
При низкой загруженности выходит в среднем: 1610 мсек. А если загрузить ЦП на 10-15% уже 1719 мсек. А в моем случае результаты могу отличиться МАХ на 40-50 мсек.
Ответить с цитированием
  (#4 (permalink)) Старый
Svetavlgur Svetavlgur вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.11.2010
По умолчанию 25.11.2010, 18:53

Добрый вечер!
Помогите справиться.
Мне нужно сократить время ожидания процесса.
По умолчанию - 30 сек
Запускаю процесс ping с необходимым IP
Если такого IP нет в сети, ping заканчивается после ожидания 30 сек.
Мне надо это время сократить.
Нашла только setExpiryTimeout. Но это относится не QProcess, а к QThreadPool
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать кнопки диалогового окна не активными на время выполнения процесса?? Danila52 Visual C++ 12 07.10.2011 13:38
Во время выполнения возникает ошибка как убрать SeregaV .NET 4 06.08.2008 01:09
Время выполнения запроса ComatoZZZ MSSQL Server 0 02.02.2008 15:15
Как убрать окно из процесса выполнения программы gard Visual C++ 5 12.04.2007 11:09
Как создать эффект процесса выполнения в VBA? HanterMan Visual Basic 2 27.02.2007 12:13
Как засечь время выполнения работы программы rusyan .NET 1 22.02.2007 02:03
Реакция на события во время выполнения eugira C++ Builder 1 06.02.2007 13:25
Время выполнения цикла CoderOl Железо. Написание драйверов 12 30.10.2006 16:06
Можно ли узнать время без учета перевода на зимнее летнее время Kosta Visual C++ 2 15.09.2006 10:57
Как посмотреть дамп памяти процесса во время исполнения программы Viktor_e Assembler 3 09.03.2006 09:56
Как узнать pid процесса в winXP Kostjara C++ Builder 1 28.01.2006 07:13
Визуализация процесса выполнения запроса kpu12 C++ Builder 3 08.08.2003 13:44



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов