Главная страница
    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.038 c
3-1108715065
Prohodil Mimo
2005-02-18 11:24
2005.03.20
Как в IB6 удалить FOREIGN KEY ?


3-1108789242
Balkon
2005-02-19 08:00
2005.03.20
Ошибка: Could not initialize BDE.: Cannot load driver


9-1103568320
Dic
2004-12-20 21:45
2005.03.20
Проблема с кириллицей в PowerDraw3.


1-1109837639
Никола
2005-03-03 11:13
2005.03.20
Если кто работал с мобилками.....


1-1109884734
Narik
2005-03-04 00:18
2005.03.20
WebBrowser





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