Don't know why but on my machine its faster:

goos: linux
goarch: amd64
pkg: playground/bench-time-now
BenchmarkTimeNow-8      30000000                49.3 ns/op
PASS

Showing top 10 nodes out of 16
      flat  flat%   sum%        cum   cum%
     1.02s 65.81% 65.81%      1.02s 65.81%  runtime._ExternalCode
     0.14s  9.03% 74.84%      0.14s  9.03%  runtime.nanotime
     0.12s  7.74% 82.58%      0.23s 14.84%  time.now
     0.11s  7.10% 89.68%      0.11s  7.10%  runtime.walltime
     0.11s  7.10% 96.77%      0.34s 21.94%  time.Now
     0.04s  2.58% 99.35%      0.38s 24.52%  
playground/bench-time-now.BenchmarkTimeNow
     0.01s  0.65%   100%      0.01s  0.65%  runtime.scanblock
         0     0%   100%      1.16s 74.84%  runtime._System
         0     0%   100%      0.01s  0.65%  runtime.gcBgMarkWorker
         0     0%   100%      0.01s  0.65%  runtime.gcBgMarkWorker.func2
(pprof) list time.now
Total: 1.55s
ROUTINE ======================== playground/bench-time-now.BenchmarkTimeNow 
in /home/lafolle/src/playground/bench-time-now/main_test.go
      40ms      380ms (flat, cum) 24.52% of Total
         .          .      5:   "testing"
         .          .      6:   "time"
         .          .      7:)
         .          .      8:
         .          .      9:func BenchmarkTimeNow(b *testing.B) {
      20ms       20ms     10:   for i := 0; i < b.N; i++ {
      20ms      360ms     11:           time.Now()
         .          .     12:   }
         .          .     13:}
ROUTINE ======================== time.now in 
/usr/local/go/src/runtime/timestub.go
     120ms      230ms (flat, cum) 14.84% of Total
         .          .     13:import _ "unsafe" // for go:linkname
         .          .     14:
         .          .     15:func walltime() (sec int64, nsec int32)
         .          .     16:
         .          .     17://go:linkname time_now time.now
      20ms       20ms     18:func time_now() (sec int64, nsec int32, mono 
int64) {
      50ms      100ms     19:   sec, nsec = walltime()
      50ms      110ms     20:   return sec, nsec, nanotime() - startNano
         .          .     21:}
(pprof)







On Thursday, 24 May 2018 13:38:36 UTC+5:30, ran...@gmail.com wrote:
>
> I been working on something performance intensive lately, one feature of 
> it require me to calculate the time gap between operation which require 
> time.Now to make time marks.
>
> After I benchmark time.Now on my computer, I found that the time.Now 
> takes about 3758 ns to perform one operation, which is not very fast. The 
> benchmark is here 
> <https://gist.github.com/reinit/82608ab20e5aac3bd3c1eb5a8f78d23c> 
> (benchmarked on my Ubuntu 18.04 LTS machine).
>
> So, I want to know is that normal to be this slow? If it is (slow), then 
> does there is an alternative way to to that?
>
> Thank you!
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to