Rails CarrierWave 导致的性能问题

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

代码在: 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用的是七牛。

共收到 4 条回复

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

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

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

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

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