gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:18:22 26 4
gpt4 key购买 nike

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

最佳答案

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

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

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

通常,对于数据库行或内存中对象等复杂事物,很难获得正确的大小。这些系统不是为了收集或提供这些信息而构建的。

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

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

关于ruby-on-rails - 如何在 Rails 中以 mb 为单位获取 ruby​​ 对象的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30042535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com