Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2009, 19:58   #1
razzmatazz
Новичок
Джуниор
 
Регистрация: 21.03.2009
Сообщений: 2
По умолчанию Как вывести время работы приложения

Здравствуйте, подскажите, пожалуйста, как вывести врямя работы программы (как в делфи например)?
razzmatazz вне форума Ответить с цитированием
Старый 22.03.2009, 01:08   #2
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Режим работы процессора(защищенный или реальный), операционная система, тип приложения? Такая тема бред - имхо подлежит удалению в назидание. В любом случае простой способ для Win32 WinAPI FASM/MASM - синхронизация с помощью GetSystemTime и установка таймера SetTimer(потом можно ловить сообщение WM_TIMER).
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 22.03.2009, 18:08   #3
Д'якон
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 236
По умолчанию

Удалению?
Не стоит опережать события, эта тема и вам пригодится судя по ответу.

GetProcessTimes - время выполнения процесса
GetThreadTimes - время выполнения потока

GetSystemTime не подходит по одной простой причине - виндоус многозадачная система и результаты будут очень искожены + ожидается собщение от таймера, а сколько его ждать неизвестно. Тогда уж лучше было GetTickCount, хотя это тоже не вариант, но для грубого подсчета - подойдет
Д'якон вне форума Ответить с цитированием
Старый 22.03.2009, 19:38   #4
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Д'якон Посмотреть сообщение
Удалению?
Не стоит опережать события, эта тема и вам пригодится судя по ответу.

GetProcessTimes - время выполнения процесса
GetThreadTimes - время выполнения потока

GetSystemTime не подходит по одной простой причине - виндоус многозадачная система и результаты будут очень искожены + ожидается собщение от таймера, а сколько его ждать неизвестно. Тогда уж лучше было GetTickCount, хотя это тоже не вариант, но для грубого подсчета - подойдет
Функции GetProcessTimes,GetThreadTimes и GetSystemTime, GetTickCount дадут нам совершенное разное время. Программа может работать трое суток а фактически исполняться на процессоре 5 минут. В таком случае GetProcessTimes даст нам 5 минут, а подсчёт основанный на GetSystemTime даст нам трое суток.
rpy3uH вне форума Ответить с цитированием
Старый 22.03.2009, 19:43   #5
albatros
Пользователь
 
Регистрация: 09.05.2008
Сообщений: 39
По умолчанию

Не легче ли использовать
тот же компонент TIMER

или с типом TDATETIME поработать
Непечатный жаргон - это тот язык, которым решительно все программисты владеют в совершенстве.
albatros вне форума Ответить с цитированием
Старый 22.03.2009, 20:05   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от albatros
или с типом TDATETIME поработать
albatros, на Ассемблере?!!!! ну-ну...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.03.2009, 00:17   #7
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Еще добавлю что на WM_TIMER нужно поцепить опять же GetSystemTime так как см. пост rpy3uH-а. В DOS - принцип такой же, только способы разные - там нужно будет вытаскивать время из БИОС-а. Вот нашел ответ на этот вопрос для DOS.
Цитата:
Прерывание 21h.
Вызов функции определения времени $2C. Он возвращает:
CH - часы,CL - минуты,DH - секунды,DL - миллисекунды (с дискретностью 55 мс)
PS: Если нужна производительность(а с частыми вызовами функции GetSystemTime ее не добится...) то можно счетчик - на каждое 30 сообщение WM_TIMER - вызывать GetSystemTime, для точной синхронизации, а в остальных случая просто инкрементировать переменную и выводить ее значение.
"Тяжело в учении, легко в бою" - А.В. Суворов

Последний раз редактировалось Ivan_32; 23.03.2009 в 00:37.
Ivan_32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести в строке состояния время работы приложения a_n_n_a Общие вопросы Delphi 5 15.03.2009 15:16
Как узнать время работы программы в паскаль? bullvinkle Помощь студентам 2 26.12.2008 11:20
Как вывести результат работы php скрипта eldar Работа с сетью в Delphi 21 08.08.2008 14:16
Как узнать создана ли форма во время работы приложения? Avalonix Общие вопросы Delphi 4 31.05.2008 21:01
Скрытие главной формы во время работы приложения Gorin Общие вопросы Delphi 7 23.08.2007 19:44