【发布时间】:2019-03-29 23:18:55
【问题描述】:
这是我的代码:
start = Time.now
File.write('/tmp/a.txt', 'Hello, world!')
puts "Saved in #{Time.now - start}"
在某些情况下,我会在日志中看到:
Saved in 0.001
Saved in 0.002
Saved in 0.245
Saved in 0.002
为什么偶尔会出现这样的峰值?那会是什么?我没有在任何地方使用flock。我的怀疑是某些库已经覆盖了 File.write() 方法并在那里添加了一些锁定/同步。有可能吗?
更新:Dir.new() 似乎会定期访问该目录,但会阻止对该目录的访问。
【问题讨论】:
-
使用 Time.now 来衡量这些东西并不总是准确的。你可以尝试将
Time.now更改为Process.clock_gettime(Process::CLOCK_MONOTONIC)吗?更多信息在这里blog.dnsimple.com/2018/03/elapsed-time-with-ruby-the-right-way -
@VasiliyErmolovich 我刚刚做了,没有任何改变
-
@egor256 您保存的是哪个设备?
-
我总是得到大约 0.000255 秒