问题标签 [objectsize]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java:序列化未知的数组大小
如果我保护一个数组并重新加载它,如果它未知,是否有可能获得它的大小?谢谢
c++ - 使用虚拟方法的 C++ 对象大小
我对虚拟对象的大小有一些疑问。
1)虚函数
A 类的大小是 8 字节......一个整数(4 字节)加上一个虚拟指针(4 字节) 很清楚!
B类的大小是多少?我使用 sizeof B 测试,它打印 12
这是否意味着即使B类和A类都具有虚功能,也只有一个vptr?为什么只有一个 vptr?
C的大小是20......
看来在这种情况下,布局中有两个vptr......这是怎么回事?我认为这两个 vptr 一个用于 A 类,另一个用于 B 类....所以 C 类的虚函数没有 vptr?
我的问题是,关于继承中 vptr 数量的规则是什么?
2) 虚拟继承
A 的大小为 8 个字节 -------------- 4(int a) + 4 (vptr) = 8
B的大小是16字节-------------- 没有虚拟应该是4 + 4 + 4 = 12。为什么这里还有4个字节?B类的布局是什么?
C 的大小为 12 个字节。-------------- 4 + 4 + 4 = 12。很明显!
D 的大小是 32 字节 -------------- 应该是 16(B 类) + 12(C 类) + 4(int d) = 32。对吗?
A 的大小为 8
B 的大小为 16
C 的大小为 16
sizeof D 为 28 是否意味着 28 = 16(B 类) + 16(C 类) - 8(A 类) + 4 (这是什么?)
我的问题是,为什么应用虚拟继承时会有额外的空间?
在这种情况下,对象大小的基本规则是什么?
将 virtual 应用于所有基类和部分基类有什么区别?
java - 使用 Instrumentation 获取对象大小
我有一个由其他几个对象组合而成的对象。当我在 Instrumentation 包中使用 getObjectSize() 方法时,它是否还包括复合对象的大小?
javascript - How to get the size of single document in Mongodb?
I encountered a strange behavior of mongo and I would like to clarify it a bit...
My request is simple as that: I would like to get a size of single document in collection.
I found two possible solutions:
- Object.bsonsize - some javascript method that should return a size in bytes
- db.collection.stats() - where there is a line 'avgObjSize' that produce some "aggregated"(average) size view on the data. It simply represents average size of single document.
When I create test collection with only one document, both functions returns different values. How is it possible?
Does it exist some other method to get a size of a mongo document?
Here, I provide some code I perform testing on:
I created new database 'test' and input simple document with only one attribute: type:"auto"
/li>output from stats() function call: db.test.stats():
}
output from bsonsize function call: Object.bsonsize(db.test.find({test:"auto"}))
/li>
java - 直接分配给老年代的巨大对象的大小
最近我一直在阅读 Java 中不同代的对象分配。大多数情况下,新对象在伊甸园(年轻一代的一部分)中分配,然后如果满足以下任何条件,它们就会被提升到老一代。
(1) 对象的年龄达到了任期阈值
(2) 当对象从 Eden(或)另一个幸存者空间(来自)复制时,幸存者空间(to)已满
但也有一种特殊情况,对象直接在老一代中分配,而不是从年轻一代中提升。当我们试图创建的对象很大(可能是几 MB 的数量级)时,就会发生这种情况。
有没有办法知道巨大/巨大物体的大小/限制?我知道 G1 垃圾收集器的巨大对象标准。我只想知道Java 6 之前或中的大小限制。
谢谢你的时间 :)
java - 为什么压缩的 Oops 为对象标头提供 12 个字节
这是在 Java 6 内存模型之后。在 32 位 JVM 中,对象的 Shallow size 为
如果前 2 个术语加起来不是 8 的倍数,则会有填充。
在 64 位 JVM 中,Shallow 大小为
我的理解是这个 Object 标头由 2 个单词组成(oracle 热点 VM)
- 一个经典的词
- 一个标记词
在 32 位 JVM 上,对象标头 = 2 * 32 位 = 64 位 = 8 字节
在 64 位 JVM 上,对象标头 = 2 * 64 位 = 128 位 = 16 字节
但是使用 CompressedOops,3 个低位被截断,因此对于小于 32 gigs 的堆,它应该在 64 位 JVM 上恢复为 8 个字节
但是当我使用 JOL(Java 对象布局)测试对象布局时,它显示了 12 个字节的对象头。
测试代码
输出
我在这里缺少什么会增加额外的 4 个字节?
r - 有没有办法根据行、列和变量类型来猜测 data.frame 的大小?
我期望生成大量数据然后捕获它 R。如何通过行数、列数和变量类型来估计 data.frame 的大小(以及所需的内存)?
例子。
如果我有 10000 行和 150 列,其中 120 个是数字,20 个是字符串,10 个是因子级别,我可以预期的数据框大小是多少?结果是否会根据存储在列中的数据而改变(如max(nchar(column))
)?
r - R 中的 GLM 对象占用的 RAM 比 GLM 对象的对象大小更多
我正在尝试将多个 GLM 对象保存在列表中。一个 GLM 对象在大型数据集上进行训练,但是通过将 GLM 对象中所有不必要的数据设置为 NULL 来减小对象的大小。问题是我遇到了 RAM 问题,因为 R 保留的 RAM 比 GLM 对象的大小要多得多。有人知道为什么会出现这个问题以及我该如何解决这个问题?在此保存对象的背后会导致文件大于对象大小。
例子:
在这里您可以看到 R 为 GLM 对象保留 RAM,在环境中保存多个 GLM 对象会导致 RAM 不足的问题。
r - 如何减小 randomForest 对象的大小
我正在尝试将 randomForest 对象预测为一个巨大的栅格层(34 个 mio 单元,120 多个层)。因此,我使用包clusterR
内的功能raster
。但是,如果我开始predict
之前计算的randomForest
对象,它会被加载到所有并行工作人员中。因此,所有进程组合起来需要大量内存。
randomForest
是否可以在不丢失模型的情况下减小对象的大小?这个事情谁有经验?
我创建这样的模型:
java - SizeOf 库中的 Java 错误
我看到了这个链接 ,它用于Instrumentation
在运行时计算对象的大小。我决定尝试这个库,因为它对确定大数据结构的大小非常有帮助。所以我在一个名为IDE的新项目TrySizeOf
中编写了以下代码:NetBeans
之后,我lib
在我的项目中创建了一个名为的文件夹,并将其放置SizeOf.jar
在其中。然后在Project->Properties->Run
我放置以下参数:
-javaagent:/home/MyUserName/NetBeansProjects/TrySizeOf/lib/SizeOf.jar
但是,当我尝试运行我的项目时,出现以下错误:
初始化虚拟机时出错
打开 zip 文件或缺少 JAR 清单时出错:/home/MyUserName/NetBeansProjects/TrySizeOf/lib/SizeOf.jar
代理库无法初始化:仪器
谁能帮我这个?或者也许解释我做错了什么?
更新:
我发现了错误,是大写和小写的问题。当我第一次开始这个项目时,我做了一些大写和小写的错字。当我注意到它时,我修复了它,但我一直收到同样的错误(但是路径是固定的)。现在,我尝试使用 clean 和 build 并且项目成功了。那是当我执行清理和构建manifest
文件时,会更新用于指定 premain 方法的路径的文件。当我尝试清理并构建文件时,文件得到了更新,项目终于成功了。感谢您对我帖子中的错字的评论,不知何故让我想到了这一点。