Ruby on rails self.column\u name.to\u日期慢?

Ruby on rails self.column\u name.to\u日期慢?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想知道这是一只虫子还是不得不忍受它 在windows(Rails 3.0.1)上运行ruby 1.9.2。检查更新版本的变更日志,查看是否有相关内容,但找不到任何内容 样本: def same_Day? self.from.to_date.eql?(self.to.to_date) end 速度比以前慢得多 def same_Day? Time.at(self.from.to_i).eql?(Time.at(self.to.to_i)) end 你知道为什么约会需要这么多时间吗?你

我想知道这是一只虫子还是不得不忍受它

在windows(Rails 3.0.1)上运行ruby 1.9.2。检查更新版本的变更日志,查看是否有相关内容,但找不到任何内容

样本:

def same_Day?
  self.from.to_date.eql?(self.to.to_date)
end
速度比以前慢得多

def same_Day?
  Time.at(self.from.to_i).eql?(Time.at(self.to.to_i))
end

你知道为什么约会需要这么多时间吗?

你需要查看源代码才能找到答案。数据库中存储的任何datetime都应该被解析并返回为
ActiveSupport::TimeWithZone
。这是通过调用
self.to
得到的结果
ActiveSupport::TimeWithZone
to_date
方法就是
self.to.time.to_date

当您签出
to_i
方法时,它比
to_date
方法更复杂


无论如何。如果您想100%确定哪种方法更快,您必须执行基准测试。我只在
rails控制台中运行的简单测试显示,第一种方法应该比将日期转换为整数然后进行比较快。

您的第二种方法无论如何都不起作用,因为它包括时间部分,顾名思义<代码>到目前为止
对我来说从来都不慢。很难在这里设置更好的示例。我有几百个约会,通过rest控制器将内容移动到ExtJS。在这里,我使用了这个相同的方法,在我的示例中,我得到了firebug的时间差,从2.5秒下降到1秒。检查所有其他代码并隔离此部分。self.from和self.to是什么类?忘了提到self.from和self.to是ms sql 2008 server中的datetime\u from和datetime\u to字段。也许这是tinyTDS sql适配器的问题?