Rails CarrierWave 导致的性能问题

gfreezy_ · 2012年12月17日 · 最后由 gfreezy_ 回复于 2012年12月18日 · 2688 次阅读

代码在: http://pastebin.com/r7kzbr3t 访问日志:

Started GET "/" for 127.0.0.1 at 2012-12-17 23:39:21 +0800 Processing by TopicsController#index as HTML User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1 Topic Load (0.2ms) SELECT "topics".* FROM "topics" LIMIT 12 OFFSET 0 Item Load (0.2ms) SELECT "items".* FROM "items" WHERE "items"."topic_id" = 2 ORDER BY item_votes_count desc LIMIT 9 (0.2ms) SELECT COUNT(*) FROM "topics" Rendered topics/index.html.erb within layouts/application (2047.6ms) Completed 200 OK in 2068ms (Views: 2056.1ms | ActiveRecord: 0.7ms)

View 有性能问题,用 Rack-mini-profiler 手动追踪,发现性能问题出在 CarrierWave 生成图片 URL 的地方,大家帮忙看看,怎么改或者怎么继续追踪下去?

CarrierWave 的 storage 用的是七牛。

没看见有七牛相关的代码啊?

#1 楼 @Rei 找到问题了,是 storage 设置为七牛导致的,设置成本地就 ok 了。qiniu 这个 gem,貌似生成 URL 会向七牛发请求。

#2 楼 @gfreezy_ 如果生成的 url 是不变的,可以缓存或者储存下来。

#3 楼 @Rei gem 有问题,url 应该是可以根据配置和数据库中字段计算出来,而不是需要想七牛服务器请求才能得到。找到问题就容易解决了,谢谢了。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册