【发布时间】:2013-10-20 22:16:03
【问题描述】:
我正在优化对性能敏感的 TTL 缓存。分析器说,大约 25% 的时间花在 Time.now 和 Time#to_f 上,它们用于计算生存时间。
有没有一种可靠的方法可以在 Ruby MRI 中以简单的数字形式(任何粒度)而不是花哨的 Time 对象来获取当前时间?
【问题讨论】:
-
快速浏览一下
time.c表明,如果你只是在做Time.now.to_f,Time是相当薄的。也许尝试编写自己的 C 扩展,它只是从系统调用中获取时间值并将其转换为 Ruby 数字。 -
您是在自己分析缓存失效系统吗?您是否有针对该特定组件的基准目标?您可能将精力集中在错误的组件上。带有浮点比较的 Time.now 应该能够评估每秒数万个缓存 TTL 是否失效。
标签: ruby-on-rails ruby performance time profiling