我想找出数据类型消耗的内存(以字节为单位).我size在一个整数上调用了方法.因为我正在运行64位机器,所以它返回8.
1.size # => 8
Run Code Online (Sandbox Code Playgroud)
类似地,对于字符串和数组,它返回每个字符/整数1个字节.
'a'.size # => 1
['a'].size # => 1
['a', 1].size # => 2
Run Code Online (Sandbox Code Playgroud)
['a', 1]return 那样异构数组1 + 8 = 9 bytes(1表示char,8表示整数)?size检查分配给ruby数据类型的内存是否正确?我认为您正在寻找MRI内存使用情况.Ruby有ObjectSpace:objspace库扩展了ObjectSpace模块并添加了几个方法来获取有关对象/内存管理的内部统计信息.
您需要'objspace'才能使用此扩展模块.
这是你将得到的:
> require 'objspace'
=> true
> ObjectSpace.memsize_of(Array)
=> 5096
> ObjectSpace.memsize_of(Hash)
=> 3304
> ObjectSpace.memsize_of(String)
=> 6344
> ObjectSpace.memsize_of(Integer)
=> 1768
Run Code Online (Sandbox Code Playgroud)
注意: 通常,如果您不了解MRI实施,则不应使用此库.主要是,该库适用于需要了解MRI内存使用情况的(内存)分析器开发人员和MRI开发人员.
| 归档时间: |
|
| 查看次数: |
1655 次 |
| 最近记录: |