X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fshared%2Fxprofiler.pas;h=f61b844edb9133b04ff5d01172949058729d7aae;hb=6cfc4749e77a32dc356f8dc4b4f26788626bbb4e;hp=e335e3fc8ee1c0abd2fd4cb361e6082f7cd61a4e;hpb=9d2405d500b579d36f6e2330762a6cd51fbce581;p=d2df-sdl.git diff --git a/src/shared/xprofiler.pas b/src/shared/xprofiler.pas index e335e3f..f61b844 100644 --- a/src/shared/xprofiler.pas +++ b/src/shared/xprofiler.pas @@ -143,6 +143,10 @@ type end; +function getTimeMicro (): UInt64; inline; +function getTimeMilli (): UInt64; inline; + + implementation {$IF DEFINED(LINUX)} @@ -178,11 +182,11 @@ begin end; -function curTimeMicro (): UInt64; inline; +function getTimeMicro (): UInt64; inline; var r: THPTimeType; begin - if (mFrequency = 0) then initTimerIntr(); + //if (mFrequency = 0) then initTimerIntr(); {$IF DEFINED(LINUX)} clock_gettime(CLOCK_MONOTONIC, @r); result := UInt64(r.tv_sec)*1000000+UInt64(r.tv_nsec) div 1000; // microseconds @@ -193,6 +197,12 @@ begin end; +function getTimeMilli (): UInt64; inline; +begin + result := getTimeMicro div 1000; +end; + + // ////////////////////////////////////////////////////////////////////////// // class function TStopWatch.Create (): TStopWatch; begin @@ -211,7 +221,7 @@ procedure TStopWatch.updateElapsed (); var e: UInt64; begin - e := curTimeMicro(); + e := getTimeMicro(); if (mStartPosition > e) then mStartPosition := e; Inc(mElapsed, e-mStartPosition); mStartPosition := e; @@ -243,7 +253,7 @@ end; procedure TStopWatch.start (reset: Boolean=true); begin if mRunning and not reset then exit; // nothing to do - mStartPosition := curTimeMicro(); + mStartPosition := getTimeMicro(); mRunning := true; if (reset) then mElapsed := 0; end; @@ -486,4 +496,6 @@ begin end; +begin + initTimerIntr(); end.