【发布时间】:2016-12-09 13:51:24
【问题描述】:
我有一个使用 Google Cloud Storage 存储图像的 Rails 应用程序。每个视图大约有 8 张图像,当用户尝试加载页面时,由于对 GCS 的请求,需要 5 秒以上才能完成。
Paperclip 使用以下配置发出请求:
config.paperclip_defaults = {
storage: :fog,
fog_credentials: {
google_storage_access_key_id: myAccessKey,
google_storage_secret_access_key: mySecretKey,
provider: 'Google'
},
fog_public: true,
fog_directory: 'mybucket'
}
在我看来,我这样称呼每张图片:
<%= image_tag myAsset.image.url %>
有没有更快的方法来达到同样的效果?
在我看来,延迟加载是一种解决方法,而不是一种解决方案,我错了吗?
Here New Relic 臭名昭著的分析(绿色属于 Google Cloud Storage 请求)
【问题讨论】:
-
GCS 资源有多大?只是一张图吗?存储桶的类是标准、DRA 还是近线?
-
每个视图有大约 8 个图像,每个图像大约 300kb。那么这个桶就是一个标准的了。
-
所以如果加载图像需要 5 秒,并且页面上有 8 300kb 图像,那大约是 480kbps。有很多互联网用户的互联网速度被限制在这个范围内。您知道相关用户的互联网速度有多慢吗?
-
我认为我无法获得用户的互联网速度。无论如何,此时延迟加载是加快页面加载时间的唯一解决方案,不是吗?
-
或者,先加载较小版本的图像,然后延迟加载实际图像。
标签: ruby-on-rails performance paperclip google-cloud-storage