On Sun, 8 Sep 2019, Yuriy Sydorov wrote:
On 08.09.2019 10:09, Michael Van Canneyt wrote:
On Sat, 7 Sep 2019, Zoe Peterson wrote:
From: Martin Frb <laza...@mfriebe.de>
But that does not mean, it needs to be changed on existing targets.
And if it is not going to be changed, then it can be documented.
I agree with everything Martin has said, though IMO GetTickCount must
return values in ms on every single platform and
any that can't should have it removed. It's not a precision timer and it
should not be an intrinsic for whatever
random RDTSC-like instruction the current platform has. It's used for
checking (rough) elapsed times. I honestly can't
think of a single use for the current function as defined, especially in a
cross-platform app. Precision and accuracy
can vary, but unspecified units with no way to query them is ridiculous.
For relative measurements, units are not needed. A ratio has no units, the
only thing that is required is that the units for both measurements are the
same (which should be the case on a single platform).
Strictly defined measurement units are important for cross-platform (and
Delphi) compatibility. So GetTickCount_2 -
GetTickCount_1 must return how many milliseconds have elapsed between calls
of GetTickCount regardless of the platform
where the program is running.
I understand, but I remain with my point of view that this is a worthless
measurement
if you simply do gettick; operation; gettick;
Since gettick itself takes time (definitely the fallback to fpgettimeofday)
the measurement itself influences the resulting time (a bit like quantum theory).
So for small times, I would distrust anything measured like that.
For good measurements, you need to repeat the operation say 100x or 1000x
and average out. And then you can just use now().
Michael.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal