Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 为什么这段代码比较慢?_Ruby_Ruby On Rails 3_Postgresql - Fatal编程技术网

Ruby 为什么这段代码比较慢?

Ruby 为什么这段代码比较慢?,ruby,ruby-on-rails-3,postgresql,Ruby,Ruby On Rails 3,Postgresql,只是将我的代码更新为Rails 3就绪,但是我遇到了下面代码的一个主要性能问题 旧代码(又好又快) 新代码(速度慢10倍) 为了便于阅读,我增加了换行符 我在用Postgres做数据库,也许这就是问题所在 我们将非常感谢任何其他使这段代码更好的技巧 我会检查输出的SQL(从日志或控制台)以查看是否有更改和/或如何优化查询。我会检查输出的SQL(从日志或控制台)以查看是否有更改和/或如何优化查询。分页是否有问题?您使用哪个插件进行分页?您可能想试试Kaminari。分页有问题吗?您使用哪个插件进行

只是将我的代码更新为Rails 3就绪,但是我遇到了下面代码的一个主要性能问题

旧代码(又好又快)

新代码(速度慢10倍)

为了便于阅读,我增加了换行符

我在用Postgres做数据库,也许这就是问题所在


我们将非常感谢任何其他使这段代码更好的技巧

我会检查输出的SQL(从日志或控制台)以查看是否有更改和/或如何优化查询。

我会检查输出的SQL(从日志或控制台)以查看是否有更改和/或如何优化查询。

分页是否有问题?您使用哪个插件进行分页?您可能想试试Kaminari。

分页有问题吗?您使用哪个插件进行分页?您可能想试试Kaminari。

您在生产模式下试过吗?不仅仅是开发-我在语法上有没有犯过错误?开发模式不一定是为了速度而优化的。这很可能是一些调试挂钩或方便的特性。如果没有明显的原因让它变慢,我至少会在开发之外尝试。如果你认为这是数据库的问题,你需要为这两种解决方案发布生成的SQL代码。然后,您还可以在psql中运行这两个语句并比较它们的运行时。如果这没有什么不同,那就是一个问题,我是Ruby,你在生产模式下试过吗?不仅仅是开发-我有没有在语法上犯过错误?开发模式不一定是为了速度而优化的。这很可能是一些调试挂钩或方便的特性。如果没有明显的原因让它变慢,我至少会在开发之外尝试。如果你认为这是数据库的问题,你需要为这两种解决方案发布生成的SQL代码。然后,您还可以在psql中运行这两个语句并比较它们的运行时。如果这没有什么不同,那么这就是一个问题:RubyConsole看起来不错,SQL看起来不错。这是我检查的第一件事,到底是什么慢了10倍?我问的是什么,不是多少。那一行代码?如果是这样,您是如何度量它的?控制台看起来不错,SQL看起来不错。这是我检查的第一件事,到底是什么慢了10倍?我问的是什么,不是多少。那一行代码?如果是,你是如何测量的?
@products = Product.all(
                        :order => 'name',
                        :include => [:category, :brand, :merchant]
                       ).paginate(:page => params[:page])
@products = Product.order("name")
                   .includes([:category, :brand, :merchant])
                   .paginate(:page => params[:page])