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

Вниз

скока тиков отработал комп   Найти похожие ветки 

 
redlord   (2005-03-07 00:22) [0]

помню что в модуле MMSYSTEM есть вункция возвращающая тики времени которое винда отработала. а как она называется забыл, поскажите уж не сочтите за труд


 
SammIk ©   (2005-03-07 00:24) [1]

GetTickCount
rdtsc db 0fh,31h


 
Palladin ©   (2005-03-07 00:27) [2]

Замучили

unit UWRTickers;

interface
Type
TTicker=Class
 Private
  m_nFreq,
  m_nStartValue,
  m_nLastTickValue,
  m_nLastTickCount,
  m_nNowTickValue,
  m_nTickCount:Int64;
  Function lcGetLastTickTime:Extended;
  Function lcGetAllTime:Extended;
  Function lcGetAvgTickTime:Extended;
 Public
  Constructor Create;
  Procedure Reset; Virtual;
  Procedure Tick(p_nCount:Integer=1); Virtual;
  Property LastTickTime:Extended Read lcGetLastTickTime;
  Property AllTime:Extended Read lcGetAllTime;
  Property AvgTickTime:Extended Read lcGetAvgTickTime;
End;

TWindowsTicker=Class(TTicker)
 Public
  Procedure Reset; Override;
  Procedure Tick(p_nCount:Integer=1); Override;
End;

TPerfomanceCounterTicker=Class(TTicker)
 Public
  Procedure Reset; Override;
  Procedure Tick(p_nCount:Integer=1); Override;
End;

Function CreateBestTicker:TTicker;

implementation
Uses
Windows;

Procedure TTicker.Tick;
Begin
 m_nLastTickValue:=m_nNowTickValue;
 m_nLastTickCount:=m_nTickCount;
 m_nTickCount:=m_nTickCount+p_nCount;
End;

Constructor TTicker.Create;
Begin
 Reset;
End;

Procedure TTicker.Reset;
Begin
 m_nLastTickValue:=m_nStartValue;
 m_nNowTickValue:=m_nStartValue;
 m_nLastTickCount:=0;
 m_nNowTickValue:=0;
 m_nTickCount:=0;
End;

Function TTicker.lcGetLastTickTime;
Begin
 If m_nFreq=0 Then Result:=0 Else
  If m_nLastTickCount=0 Then Result:=0 Else Result:=(m_nNowTickValue-m_nLastTickValue)/m_nFreq/m_nLastTickCount;
End;

Function TTicker.lcGetAllTime;
Begin
 If m_nFreq=0 Then Result:=0
              Else Result:=(m_nNowTickValue-m_nStartValue)/m_nFreq;
End;

Function TTicker.lcGetAvgTickTime;
Begin
 If m_nFreq=0 Then Result:=0 Else
 If m_nTickCount=0 Then Result:=0 Else Result:=(m_nNowTickValue-m_nLastTickValue)/m_nFreq/m_nTickCount;
End;

Procedure TWindowsTicker.Reset;
Begin
 m_nFreq:=1000;
 m_nStartValue:=GetTickCount;
 Inherited;
End;

Procedure TWindowsTicker.Tick;
Begin
 Inherited;
 m_nNowTickValue:=GetTickCount;
End;

Procedure TPerfomanceCounterTicker.Reset;
Begin
 QueryPerformanceFrequency(m_nFreq);
 QueryPerformanceCounter(m_nStartValue);
 Inherited;
End;

Procedure TPerfomanceCounterTicker.Tick;
Begin
 Inherited;
 QueryPerformanceCounter(m_nNowTickValue);
End;

Function CreateBestTicker:TTicker;
Var
n:Int64;
Begin
If Not QueryPerformanceFrequency(n) Then Result:=TWindowsTicker.Create
                                    Else Result:=TPerfomanceCounterTicker.Create;
End;

end.


 
redlord   (2005-03-07 00:29) [3]

ok GetTickCount


 
Kolan ©   (2005-03-07 00:36) [4]


> Palladin ©   (07.03.05 00:27) [2]

Вот так всегда. Зря постил :(


> ok GetTickCount


 
Palladin ©   (2005-03-07 00:41) [5]

В общем то не зря. Есть "тихме посетители". Для себя много извелкут в приведенном выше. Есть много полезного.


 
тихий_посетитель   (2005-03-07 00:58) [6]

Да, не зря. Когда-то стояла передо мной похожая задача - не помню, как извратился. А эту ветку я уже минут 20 как сохранил - моить, понадобится.

---
Умный не должен все знать - он должен знать, где это "все" можно найти (не поручусь за дословность)



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

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

Наверх




Память: 0.46 MB
Время: 0.043 c
1-1110230253
Ермак
2005-03-08 00:17
2005.03.20
Отловить перемещение окна


14-1109608994
Макс
2005-02-28 19:43
2005.03.20
Помогите чайнику!!!Как сделать форму невидимой?


1-1110228576
Луарвик
2005-03-07 23:49
2005.03.20
Шифрование текста


8-1101481881
Ilg
2004-11-26 18:11
2005.03.20
Преобразование TPicture в TBitmap


1-1109777179
ТехникПТО
2005-03-02 18:26
2005.03.20
String в TColor





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский