ruby-on-rails - Rails/Ruby - 如何检查用户下载和上传速度?

标签 ruby-on-rails ruby ruby-on-rails-3 performance

如何检查用户以 MB/s 为单位的上传和下载速度?

最佳答案

要为下载计时,您可以在操作中执行以下操作:

def download
  start_time = Time.now
  file_size = File.size('never_gonna_give_you_up.mp3') / 1024.0 / 1024.0
  send_file("never_gonna_give_you_up.mp3")
  logger.info("Download took #{Time.now - start_time}s at #{file_size / (Time.now - start_time)} MB/s")
 end

对于计时用户上传,您将无法检查用户在 Ruby 或 Rails 中严格上传内容所花费的时间,因为在用户完成上传之前不会处理请求。您可以做的是在提交表单时让 javascript 填充一个字段(例如 upload_start_time),然后减去操作开始时的时间,如下所示:

def upload
  upload_time = Time.parse(params[:upload_start_time]) - Time.now
  file_size = params[:file].size / 1024.0 / 1024.0 # assuming 'file' is the name of the field
  logger.info("Upload took #{upload_time} at #{file_size / upload_time} MB/s")
end

这不会很精确,但它应该可以为您提供一个很好的近似值。

关于ruby-on-rails - Rails/Ruby - 如何检查用户下载和上传速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8460658/

相关文章:

ruby-on-rails - Ruby - 遍历模块

ruby-on-rails - 如何在 Ruby 2 中为 Net::HTTP::Post.new 请求指定读取超时

ruby - 如何安全地删除文件?

ruby - 为我正在开发的 rails ORM gem 创建 railtie 的问题

ruby-on-rails - 用于 Lazy HighCharts 的 Rails ActiveRecord group_by & sum db 结果

ruby-on-rails - 在服务器上执行修改时,Ruby/Rails 显示常规屏幕

ruby-on-rails - 最灵活的 Rails 密码安全实现

ruby - 带有设计的自定义密码字段( ruby )

ruby-on-rails - 需要手动更新Friendly_id

ruby-on-rails - Google Chrome - 防止在 Rails 应用程序中刷新时重新提交表单