如何在 Rails 中获取 ruby​​ 对象的大小(以 mb 为单位)?

2024-01-05

我想查询 ActiveRecord 模型,修改它,并计算新对象的大小(以 mb 为单位)。我该怎么做呢?


不幸的是,数据库中数据行的大小以及内存中 ruby​​ 对象的大小都不容易获得。

虽然了解内存中的对象大小要容易一些,但您仍然必须找到属于活动记录对象的所有对象,因此应该对其进行计数(这并不明显)。即使这样,您也必须处理一些不明显的事情,例如共享/缓存数据、类开销,这些可能需要计算,但不是必须的。

在数据库方面,它很大程度上取决于所使用的存储引擎。从数据库的文档中,您通常可以扣除表中定义的每个列的存储要求(对于 VARCHAR、TEXT 或 BLOB 列,这可能会有所不同。最重要的是共享资源,例如索引、常规表开销,...为了进行估计,表中各列的记录大小要求应该足够了

一般来说,对于诸如数据库行或内存中对象之类的复杂事物,很难获得正确的大小。这些系统不是为了收集或提供此信息而构建的。

除非您绝对需要获得准确的数据,否则您应该避免空间太大。一般来说,对于数据库来说,拥有太多的磁盘空间(在这种情况下,数据库通常会运行得更快一点)或太多的内存(这将减少 Ruby 的内存压力,从而再次使其更快)并没有什么坏处。

通常,Ruby 进程的内存使用情况并不明显。因此,最好的做法几乎总是编写程序,然后使用所需数量的实际数据对其进行测试,并检查其性能和内存要求。这样,您就得到了actual您需要的信息,即:处理我所需的数据集时我的程序需要多少内存。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Rails 中获取 ruby​​ 对象的大小(以 mb 为单位)? 的相关文章

  • 在 Rails 4 中使用 AJAX 进行搜索、排序和分页

    我正在尝试进行实时搜索导轨4 0 1应用 我用的是Railscasts 240 教程 http railscasts com episodes 240 search sort paginate with ajax view asciicas
  • 如何防止

    标签在 Rails 中使用tinymce 包裹我的输入?

    默认情况下 tinymce 输入作为段落标签传递到 DOM 我想删除该元素包装器 以便tinymce 准确地传递我在文本编辑器中输入的内容 我怎么做 如果您提供代码 请让我知道该代码的添加位置吗 问候 事实上我解决了我的问题 我所要做的就是
  • Rails 设计 edit_user_password_path

    我无法路由到项目上的 edit user password path 它只是路由到家 有人可以帮忙吗 这个问题的答案很能说明问题 显示设备编辑密码屏幕 https stackoverflow com questions 7014966 sh
  • 为什么 Ruby 没有内置线程池?

    我有一个程序 它一次创建 10000 个线程 并同时运行 8 个线程 但是Ruby没有像Java那样内置ThreadPool 有充分的理由吗 可能是因为使用标准库 Queue 类很容易推出您自己的 q Queue new 3 times T
  • Bootstrap Typeahead 仅显示第一个字母

    我很难让 Twitter Bootstrap 的 Typeahead 正常工作 Typeahead 仅匹配输入的第一个字母 我在预输入框中的结果看起来像 n n n N N n 我的代码是 有人可以帮忙吗 检查 html 中输出的数据源属性
  • 如何用form_for设置动作?

    我在现有控制器上创建了一个新页面 我在控制器上添加了 2 个操作方法 prompt user 和 process feedback 所以我通过以下方式进入该页面 redirect to controller gt users action
  • Rails Active Model Serializer - has_many 并访问父记录

    我正在尝试使用 Active Model Serializer 构建一些 Rails 模型的 JSON 表示 其中一些模型嵌入了其他模型 例如 我有活动和参加者 活动 has and belongs to many 参加者 class Ev
  • 在 4.x 内核上的 64 位内存中查找系统调用表

    我正在尝试编写一个简单的内核模块来查找 Linux 中的 sys call table 但遇到了一些麻烦 我在这里找到了 32 位 Linux 的基本指南 https memset wordpress com 2011 03 18 sysc
  • 用于输入地址的自动完成文本框是个好主意吗?

    通过传统形式输入我的地址让我发疯 为什么我必须输入我的城市 州 and邮政编码何时可以从我的邮政编码推断出我的城市和州 从下拉列表中选择您的状态是一件很痛苦的事情 通常您无法使用 Tab 键进入它 您必须使用鼠标等 替代文本 http im
  • YAML 每个缩进有多少个空格?

    如果我在每个缩进级别使用一个空格 两个或四个空格 有什么区别吗 YAML 每个结构类型的空间数量有什么具体规则吗 例如4嵌套空间maps 1每空间项目清单 etc 我正在为 elastic beanstalk ebextensions 编写
  • Rails、Facebook API、Koala gem — 获取“喜欢”某个页面的用户的所有个人资料

    使用 Rails3 和 koala gem 如何检索 喜欢 FB 页面的用户的所有个人资料 例如 http facebook com DAKINE 有可能吗 作为最终结果 我需要获取一堆存储在数据库中的用户配置文件 Thanks 在 Fac
  • 不使用 RVM 时的 Cron +

    我使用的是RVM环境 RUby 版本 2 1 2 导轨 4 1 1 schedule rb every 1 minute do runner note send mail end I used whenever update crontab
  • 关于空 own_to 关联的最佳实践

    想象一下以下情况 我有一个dog模型和一个house模型 一只狗可以属于一个房子 一个房子可以有很多只狗 所以 Class Dog lt ActiveRecord Base belongs to house end Class House
  • Thor 可执行文件 - 忽略任务名称

    雷神维基页面 制作可执行文件 https github com wycats thor wiki Making An Executable 向您展示如何创建由 thor 支持的 CLI 命令 如下所示 bash mythorcommand
  • 没有路线匹配... Rails Engine

    所以我不断收到错误 No route matches action gt create controller gt xaaron api keys 测试中抛出的是 it should not create an api key for th
  • 未定义符号:尝试运行瘦网络服务器时的 SSLv2_method

    我已经用 rvm 安装了 OpenSSL rvm pkg install openssl 然后做了rvm reinstall 1 9 3 with openssl dir rvm path usr 当我尝试运行瘦网络服务器时 出现以下错误
  • 为什么 Ruby 中两个用空格分隔的字符串连接在一起?

    为什么这在 Ruby 中有效 foo bar gt foobar 我不确定为什么要连接字符串而不是给出语法错误 我很好奇这是否是预期的行为 以及解析器是否负责争论 没有运算符的两个字符串被视为单个字符串 或者语言定义本身指定了这种行为 隐式
  • Rspec:测试救援

    尝试测试我的函数是否能够正确地从异常中解救 更改参数 文件名 然后重试一次 我可以让函数接收第一次尝试 但无法让它接收第二次尝试 控制器 begin video get video video id rescue matches video
  • Delayed_job不会运行用户定义的方法

    我一直在尝试让 DelayedJob 在后台运行一些用户定义的方法 对于这个测试用例 我在助手中定义了以下方法 def test case u User new u first name JimBob u last name joe u e
  • 相当于 JavaScript 中 Ruby 的each_cons

    许多语言都曾提出过这个问题 但 javascript 却没有 Ruby 有方法Enumerable each cons https devdocs io ruby 2 5 enumerable method i each cons看起来像这

随机推荐

  • 将 jquery 选择器存储在变量中

    在下面的示例中stored jQuery selector返回错误的值 是否可以存储选择器而不是结果 js代码 storing the jQuery selectors var container container element1 co
  • 验证对象是否存在于 django 视图中而不返回 404 的正确方法是什么?

    我需要验证对象是否存在并返回该对象 然后基于该对象执行操作 在不返回 404 的情况下执行此操作的正确方法是什么 try listing RealEstateListing objects get slug url slug except
  • 在 SvelteKit 中全局导入图像 url

    我正在尝试以通配符方式导入目录中图像的所有 url 并有两个可能的扩展名 import urls from static images png svg 目前该目录中有三个文件 单独导入它们可以正常工作 当我使用此语法时 找不到文件 无法解析
  • 以编程方式访问所有新的 Chrome 通知

    我以前没有编程 Google Chrome 插件的经验 这就是为什么我从这里开始看看我想要完成的事情是否可能 合理 不过 我在编程方面确实拥有相当广泛的经验 我想要的是 当新的 Chrome 通知 你知道系统托盘上方的这些小弹出窗口 弹出时
  • foursquare API 的 IP 地址范围是多少? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在大学的防火墙后面使用虚拟机开发 Web 服务 我需要知道要向我们的 IT 人员提供的 IP 地址范围 以便我们能够访问 foursquare 的
  • Microsoft Graph Api OAuth 返回状态代码 200 而不是 302(不重定向到登录页面)

    获取 Microsoft Graph API 的令牌 这是第一个调用 让身份验证用户 microsoft 并获取调用令牌服务的代码 请求已正确发送 但不是获取状态代码 302 以便可以将其重定向到登录页面 我收到状态代码 200 publi
  • SQL Profiler 可以与 LocalDB 一起使用吗?

    是否可以使用 SQL Profiler 来观察 LocalDB 实例请求的查询 只要您知道正确的服务器名称 就可以像使用所有其他 SQL 版本一样使用 SQL Profiler 您可以使用以下命令找到服务器名称本地数据库 http tech
  • 参数中缺少必需的键“Bucket”

    我正在尝试将一个简单的 lambda 函数部署到 aws 但收到错误参数中缺少必需的键 Bucket 我创建的用户拥有完整的 Lambda S3 Cloudformation 和 Cloudwatch 访问权限 JS 使用严格 module
  • ExtJS 别名与 id

    我不明白的用法alias http docs sencha com extjs 4 2 1 api Ext Class cfg aliasExtJS 中的 id 与 itemId 配置属性对比 应用程序 视图 foo js Ext defi
  • 获取隐藏字段值的代码隐藏

    如何获取隐藏字段的值
  • 使用 Swift 创建 Flutter 项目

    Flutter 允许支持Swift编程语言 我怎样才能整合我的SwiftAndroid Studio 中 Flutter 项目的代码文件 没有添加 创建 Swift 文件的选项 在NewAndroid Studio 中的菜单 我认为更好的方
  • 比较 Java 中的 2 个字符串是否有分隔符

    字符串 1 func1 test1 字符串2 func1 test2 我想将这两个字符串与第一个左大括号 进行比较 因此 对于给定的示例 它应该返回 true 因为两个字符串中直到 的字符串都是 func1 有没有什么方法可以在不分裂的情况
  • 如何在asp.net core中处理cookie过期

    我想知道如何正确处理cookie过期的情况 是否可以执行自定义操作 我想要实现的是 当 cookie 过期时 从当前 cookie 中取出一些信息 并通过该信息重定向到操作参数 是否可以 没有一个好的方法可以实现这一点 如果 cookie
  • 在 C++ 中处理 CPU 异常

    是否有跨平台的方法来处理 CPU 异常 例如分段错误或除以零 可以说 我需要调用一些潜在不安全的函数 例如从插件文件 这可能会导致段错误 或在执行之前无法测试的一些其他问题 我知道 C 标准库有信号处理函数 但我不知道如何使用它们来处理问题
  • 为什么我收到“无法解析符号”?

    我以前导入过这个项目 没有任何困难 我不确定发生了什么变化 I click Import Project并选择了getting started with selenium http github com ddavison getting s
  • 使用 thymeleaf 中的搜索功能和请求参数

    我有一个页面 可以在其中获取条目列表 现在 我希望能够从这些列表中进行搜索 我当前用于检索列表的网址是 show products 我想在此页面中添加一个搜索表单 以便我可以使用请求参数进行搜索 是的 我可以使用ajax 但我必须使用请求参
  • 从 pdf 中读取证书

    我正在使用 ITextSharp 来从数字签名的 pdf 文档中读取证书信息 The ITextSharp Text Pdf PdfPKCS7类公开三个属性 Certificates 如清单所示 SignCertificate 作为单个对象
  • 对 pandas 中的布尔值进行重新采样

    我遇到了一个属性 我发现在其中重新采样布尔值很奇怪pandas 这是一些时间序列数据 import pandas as pd import numpy as np dr pd date range 01 01 2020 5 00 perio
  • 递归地包含头文件以进行合成

    我正在处理一个 C 项目并尝试将其配置为使用 syntastic 在我的项目中 我有一个头文件的嵌套目录结构 实际的嵌套结构要糟糕得多 这是一个例子 libs dir1 foo1 h dir2 foo2 h foo3 h dir3 foo4
  • 如何在 Rails 中获取 ruby​​ 对象的大小(以 mb 为单位)?

    我想查询 ActiveRecord 模型 修改它 并计算新对象的大小 以 mb 为单位 我该怎么做呢 不幸的是 数据库中数据行的大小以及内存中 ruby 对象的大小都不容易获得 虽然了解内存中的对象大小要容易一些 但您仍然必须找到属于活动记