[erlang-questions] negative diference between two calls to now/0
Per Hedeland
per@REDACTED
Mon Feb 5 11:06:20 CET 2007
Samuel Rivas wrote:
>Rodrigo Ahumada M. wrote:
>> [...]
>> so i made a program that launches N processes that tries to conect to
>> the server, send question and receive an answer. After that the process
>> send its results to a logger process and then terminates.
>>
>> the code for each process is like this:
>>
>> [...]
>>
>> time_lapse({_MgS1, S1, MuS1}, {_MgS2, S2, MuS2}) ->
>> %% calculate the difference of msecs,
>> %% ignore the MegaSecs because always they're zero
>> T1 = S1*1000 + MuS1,
>> T2 = S2*1000 + MuS2,
>> T2 - T1.
>> [...]
>
> MuS1 and MuS2 are microseconds, not milliseconds. Also, megaseconds
>difference is not always zero. Each about 11.5 days it changes, so if
>you ignore then you will get negative values if, for example, you get
>
> {828, 1, 653753} - {827, 999999, 676}
>
>(example from supervisor.erl)
Good point - and of course the best answer is to use timer:now_diff/2
instead of rolling your own...
--Per Hedeland
More information about the erlang-questions
mailing list