BigW Consortium Gitlab
Process.clock_gettime allows getting the real time in nanoseconds as well as allowing one to get a monotonic timestamp. This offers greater accuracy without the overhead of having to allocate a Time instance. In general using Time.now/Time.new is about 2x slower than using Process.clock_gettime(). For example: require 'benchmark/ips' Benchmark.ips do |bench| bench.report 'Time.now' do Time.now.to_f end bench.report 'clock_gettime' do Process.clock_gettime(Process::CLOCK_MONOTONIC, :millisecond) end bench.compare! end Running this benchmark gives: Calculating ------------------------------------- Time.now 108.052k i/100ms clock_gettime 125.984k i/100ms ------------------------------------------------- Time.now 2.343M (± 7.1%) i/s - 11.670M clock_gettime 4.979M (± 0.8%) i/s - 24.945M Comparison: clock_gettime: 4979393.8 i/s Time.now: 2342986.8 i/s - 2.13x slower Another benefit of using Process.clock_gettime() is that we can simplify the code a bit since it can give timestamps in nanoseconds out of the box.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
backend | Loading commit data... | |
badge | Loading commit data... | |
bitbucket_import | Loading commit data... | |
ci | Loading commit data... | |
database | Loading commit data... | |
diff | Loading commit data... | |
Loading commit data... | ||
fogbugz_import | Loading commit data... | |
gfm | Loading commit data... | |
github_import | Loading commit data... | |
gitlab_import | Loading commit data... | |
gitorious_import | Loading commit data... | |
google_code_import | Loading commit data... | |
import_export | Loading commit data... | |
ldap | Loading commit data... | |
lfs | Loading commit data... | |
metrics | Loading commit data... | |
middleware | Loading commit data... | |
o_auth | Loading commit data... | |
saml | Loading commit data... | |
sanitizers | Loading commit data... | |
sherlock | Loading commit data... | |
sql | Loading commit data... | |
template | Loading commit data... | |
akismet_helper_spec.rb | Loading commit data... | |
asciidoc_spec.rb | Loading commit data... | |
auth_spec.rb | Loading commit data... | |
award_emoji_spec.rb | Loading commit data... | |
blame_spec.rb | Loading commit data... | |
build_data_builder_spec.rb | Loading commit data... | |
closing_issue_extractor_spec.rb | Loading commit data... | |
color_schemes_spec.rb | Loading commit data... | |
database_spec.rb | Loading commit data... | |
exclusive_lease_spec.rb | Loading commit data... | |
git_access_spec.rb | Loading commit data... | |
git_access_wiki_spec.rb | Loading commit data... | |
highlight_spec.rb | Loading commit data... | |
incoming_email_spec.rb | Loading commit data... | |
key_fingerprint_spec.rb | Loading commit data... | |
lazy_spec.rb | Loading commit data... | |
markup_helper_spec.rb | Loading commit data... | |
metrics_spec.rb | Loading commit data... | |
note_data_builder_spec.rb | Loading commit data... | |
popen_spec.rb | Loading commit data... | |
project_search_results_spec.rb | Loading commit data... | |
push_data_builder_spec.rb | Loading commit data... | |
reference_extractor_spec.rb | Loading commit data... | |
regex_spec.rb | Loading commit data... | |
search_results_spec.rb | Loading commit data... | |
snippet_search_results_spec.rb | Loading commit data... | |
themes_spec.rb | Loading commit data... | |
upgrader_spec.rb | Loading commit data... | |
uploads_transfer_spec.rb | Loading commit data... | |
url_builder_spec.rb | Loading commit data... | |
url_sanitizer_spec.rb | Loading commit data... | |
version_info_spec.rb | Loading commit data... | |
workhorse_spec.rb | Loading commit data... |