Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];

Вниз

Как посчитать время работы потока?   Найти похожие ветки 

 
kofman   (2003-01-09 16:03) [0]

Мастера помогите пожалуйста, у меня есть 3 потока каждый из которых запускается и останавливается в произвольные моменты времени, в каждый момент времени могут работать и один поток и два и три вместе, в связи с чем такой вопрос - как посчитать сколько времени работал каждый поток в отдельности за какой-то фиксированный промежуток времени? Заранее спасибо.


 
RWolf   (2003-01-09 16:06) [1]

Если дело было по NT - GetThreadTimes
под мастдаем - точно, видимо, никак


 
passm   (2003-01-09 16:10) [2]

kofman © (09.01.03 16:03)> Видимо, придется вести логи работы потоков (время старта и остановки).


 
Zemal   (2003-01-09 16:29) [3]

Опиши свой класс потока и его поля для фиксации системного времени. При создании фиксируй время начала работы потока, а при остановке вычисляй интервал и запоминай, при выходе из спящего режима опять фиксируй время в полях своего экземпляра потока. В конце работы суммируй все интервалы и получай время работы... и делай с ним чё хошь :). Неужели это так сложно?! Или вариант сложнее: посылай определённое сообщение основному кодовому потоку (VCL-потоку), а он пусть фиксирует время создания, вычитает интервал остановки потока... при уничтожении потока пусть делает необходимые вычисления и выводит время работы твоих потоков. Я невижу в этом особой проблемы.


 
RWolf   (2003-01-09 16:37) [4]

Zemal
если я правильно понял kofman, ему нужно определить, сколько поток занял чистого процессорного времени; засечки по реальному времени такой информации не дадут, т.к. windows - система многозадачная.
GetThreadTimes по NT как раз такую информацию возвращает.


 
passm   (2003-01-09 16:38) [5]

Zemal © (09.01.03 16:29)> Насколько я понял из вопроса, может понадобиться расчет, например, сколько времени работал такой-то поток с 08.01.2003 12:30:00 по 08.01.2003 13:21:30. Здесь, IMHO, без лога не обойтись.


 
Zemal   (2003-01-09 16:47) [6]

Ну если нужно засекать чистое процессорное время, то да... согласен... только зачем это надо??? Для определения "трудоёмкости" потоков??? Типа как процессор усирается обслуживая тот или иной поток??? Этого я никогда не делал :(.
passm >> А лог ты предлагаешь использовать как БД для фиксации времени??? Зачем??? Можно фиксировать время и в полях потока или массиве :).


 
RWolf   (2003-01-09 16:49) [7]

Zemal
Зачем - это к kofman"у ;)

> вопрос - как посчитать сколько времени работал каждый поток в отдельности


 
Zemal   (2003-01-09 17:00) [8]

RWolf >> т.е. надо подсчитать сколько ПРОЦЕССОРНОГО времени занял каждый поток?! Это я понял уже :). Как такое сделать - незнаю. Это, похоже, на асме делать придётся :), а я его плохо знаю... помню где-то видел такой кусок кода на асме, который возвращал процессорное время... где - непомню :(... знаю только что есть такая процессорная директива, но она разная может быть для каждого типа проца :(.


 
passm   (2003-01-09 17:02) [9]

Zemal © (09.01.03 16:47)> Нет, почему же в БД? Откуда такое предположение? Это наверняка будет неоправдано ("наверняка", потому что неивестно предназначение приложения). Использование TList"а достаточно.


 
Zemal   (2003-01-09 17:19) [10]

passm >> Термин БД я использовал как элементарное понятие, т.е. в смысле храненилище данных :). Это может быть и текстовый файл на диске :). Я хотел сказать, что нет смысла их куда-то записывать... легче просто массивом или списком воспользоваться :). Меня ввело в заблуждение использование термина "Здесь без ЛОГА не обойтись".


 
kofman   (2003-01-10 23:10) [11]

Всем спасибо за идеи, попробую реализовать.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.011 c
14-62736
Volly
2002-12-29 12:30
2003.01.20
Оформление как в WinXP


4-62903
Lex_!
2002-12-03 13:33
2003.01.20
Можно ли запустить приложение из моей программы так...


1-62633
Johnny
2003-01-09 15:32
2003.01.20
Совсем простой вопрос


1-62457
Артём К
2003-01-10 04:53
2003.01.20
Запись и чтение файла из определённого места


14-62725
Silentor
2003-01-03 19:48
2003.01.20
Прикол в D5





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский