<p><br>
Den 13/07/2012 14.00 skrev "Wojtek Narczyński" <<a href="mailto:wojtek@power.com.pl">wojtek@power.com.pl</a>>:<br>
><br>
> On 07/13/2012 10:35 AM, Erik Søe Sørensen wrote:<br>
>><br>
>> Oh, but you do have a choice between more than one time source in Erlang:<br>
>> now() - as known, for microsecond-precision and uniqueness<br>
>> erlang:universaltime() and friends - for second-precision and YMD-HMS format.<br>
>> os:timestamp() - for microsecond-precision but without uniqueness and time correction.<br>
>><br>
><br>
> I didn't know that. Not that I ever looked thoroughly...<br>
I used to wonder if it existed... until someone told me. It's probably just not a module you start looking in for that kind of functionality (at least when you already know about now()).<br>
I guess a crosslink in the module docs would be an idea?</p>
<p>>> For many places where you could use now() but simply need a timestamp for logging or the like, os:timestamp() might be more appropriate and a bit more lightweight. Its return type is compatible with that of now().<br>

><br>
><br>
> I just replaced calendar:now_to_datetime(erlang:now()) with erlang:universaltime() in logging code and gained 13% performance. And that machine is only dual-core.</p>
<p>Nice! :-)</p>
<p>(Topper: That's nothing, though - try using gregorian-seconds-to-datetime on a huge number, like MAX_DOUBLE - that can be quite slow...)<br>
Time conversion is one of those things you don't want to do more than strictly necessary.</p>