首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab句柄类句柄大小

Matlab句柄类句柄大小
EN

Stack Overflow用户
提问于 2015-01-29 12:03:30
回答 1查看 212关注 0票数 1

我有一个句柄类和一个数组,在其中存储我生成的类对象的句柄的多个副本(有时单个句柄的拷贝多达1000份)。我假设对象本身的句柄很少使用内存。

在post thread/255117中,有人提到句柄是4个字节。但是,如果在对象句柄上执行whos,则会得到112个字节。这对我目前的申请来说太过分了。这是正常的吗?

那么,如何降低内存的使用率呢?我可以想象一个解决方案,在这个解决方案中,我可以将句柄(用container.map)映射到一个uint32数字(4个字节),然后使用这个数字在我的句柄副本数组中表示它们。不过,它有点脏,因为每次我想从对象获取数据时,我都需要进行映射。

有更好的主意吗?谢谢!

根据要求,举一个例子:

代码语言:javascript
复制
classdef Test < handle
end

>> z = Test();
>> whos z
  Name      Size            Bytes  Class    Attributes
  z         1x1               112  Test  
>> y = [z z z z z z z z z]; %an array of copies of the handle

然而,这让我感到困惑:

代码语言:javascript
复制
>> y = [z z z];
>> whos y
  Name      Size            Bytes  Class    Attributes
  y         1x3               128  Test               

>> y = [z z z z];
>> whos y
  Name      Size            Bytes  Class    Attributes
  y         1x4               136  Test  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-29 12:22:47

Whos显示对象的大小,包括4个字节引用。您的对象本身将是108个字节,而句柄将再添加4个字节,但这108个字节是共享的。您无法在whos中对内存进行汇总,以获得分配的内存总量。

看看y的大小,应该是numel(y)*4+108

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28214326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档