Re: 1 - 17 ms, 553 ╬╝s, and 1 hnsec

Steven Schveighoffer schveiguy at gmail.com
Thu May 16 20:17:37 UTC 2019


On 5/16/19 4:55 PM, Vladimir Panteleev wrote:
> On Thursday, 16 May 2019 at 15:52:05 UTC, Steven Schveighoffer wrote:
>>> Hecto-nano-second, the smallest representable unit of time in SysTime 
>>> and Duration.
>>
>> The output shouldn't involve the inner workings of the type. It should 
>> be changed to say 10 ns.
> 
> If the output is meant for the developer, then I disagree subjectively, 
> as that creates the impression that the lowest resolution or 
> representable unit of time is the nanosecond.

It is what it is. The reason hnsecs is used instead of nsecs is because 
it gives a time range of 20,000 years instead of 2,000 years.

We do have a nanosecond resolution, and it's just rounded down to the 
nearest 10.

For example:

     auto d = 15.nsecs;
     assert(d == 10.nsecs);

You shouldn't be relying on what a string says to know what the tick 
resolution is.

For example, if I do writefln("%f", 1.0), I get 1.000000. That doesn't 
mean I should assume floating point precision only goes down to 1/1_000_000.

hnsecs is more confusing than nanoseconds. People know what a nanosecond 
is, a hecto-nano-second is not as familiar a term.

> If the output is meant for the user, then hectonanoseconds or 
> nanoseconds are going to be almost always irrelevant. The duration 
> should be formatted appropriately to the use case.

Depends on the user and the application.

-Steve


More information about the Digitalmars-d-learn mailing list