Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: Port checking and timers

From: lmecir:mbox:vol:cz at: 27-Nov-2000 9:44

Hi, Holger wrote:
> The resolution of the time! datatype is one nanosecond. To get > the current date/time with the highest possible resolution provided > by the operating system use now/precise (with current experimentals > only). If you only need the time, without the date, use now/precise/time. > > The exact resolution depends on the platform, but is one microsecond > in most cases. > > -- > Holger Kruse > [holger--rebol--com] > > --
I am including my Time-tick function, which I used to find out, that the resolution of my computer timer is 55 milliseconds (a notebook with MS Windows 95). Warning! Works only with Rebol/Core 2.4.39.3.1 or newer. Regards Ladislav seconds: func [ {Compute difference between dates in seconds} a [date!] "first date" b [date!] "second date" ] [ b - a * 86400 + (to decimal! b/time) - (to decimal! a/time) + (b/zone/hour - a/zone/hour) * 3600 ] time-tick: function [ { Time the clock tick for a computer. Works reliably, if the execution time of the innermost loop block is shorter than the clock tick time, otherwise it gives the innermost loop block execution time instead. } accuracy [decimal!] ] [ guess count start time result prev cur ticks ] [ guess: 0 count: 1 while [ ticks: 0 start: prev: now/precise loop :count [ if :prev <> cur: now/precise [ ticks: :ticks + 1 prev: :cur ] ] time: seconds start cur result: 0 any [ ticks <= 0 ( result: time / ticks (abs result - guess) / result + (3 / ticks) > accuracy ) ] ][ guess: result count: count * 2 ] result ]