C++ boost是否启用了共享的二进制文件?此功能会给二进制文件增加太多的大小?

C++ boost是否启用了共享的二进制文件?此功能会给二进制文件增加太多的大小?,c++,boost,C++,Boost,我不知道这个问题是否适合这样做,但我们开始: 从这个启用共享_时,会不会给可执行文件增加太多的大小?从_this()调用解析共享_是否也需要太多时间 查看文档,启用\u共享\u from\u这是一个仅添加两个函数的帮助程序,因此我认为它不应该占用太多额外的大小 编辑这个问题更合适的标题应该是,它增加了多少尺寸?不要询问它是否增加了太多的大小。您可以查看boost源文件。它只添加了mutable弱\u ptr弱\u this到您的类,它本身只包含指向实例的指针和指向refcounter的指针。您可

我不知道这个问题是否适合这样做,但我们开始:

从这个启用共享_时,会不会给可执行文件增加太多的大小?从_this()调用解析共享_是否也需要太多时间

查看文档,启用\u共享\u from\u这是一个仅添加两个函数的帮助程序,因此我认为它不应该占用太多额外的大小


编辑这个问题更合适的标题应该是,它增加了多少尺寸?不要询问它是否增加了太多的大小。

您可以查看boost源文件。它只添加了
mutable弱\u ptr弱\u this到您的类,它本身只包含指向实例的指针和指向refcounter的指针。

您可以查看boost源文件。它只添加了
mutable弱\u ptr弱\u this指向类,类本身只包含指向实例的指针和指向refcounter的指针

从这个启用共享_时,会不会给可执行文件增加太多的大小

在运行时,它将向每个实例化对象添加
弱\u ptr
的大小,在当前版本的boost中,该对象的大小为两个指针的大小。

至于可执行二进制文件本身,很难预测更改源代码将如何影响该文件的大小

从_this()调用解析共享_是否也需要太多时间

您应该预计从
弱\u ptr
构建
共享\u ptr
所需的时间

从这个启用共享_时,会不会给可执行文件增加太多的大小

在运行时,它将向每个实例化对象添加
弱\u ptr
的大小,在当前版本的boost中,该对象的大小为两个指针的大小。

至于可执行二进制文件本身,很难预测更改源代码将如何影响该文件的大小

从_this()调用解析共享_是否也需要太多时间


您应该预计从一个
弱的\u ptr
构建一个
共享的\u ptr
所需的时间。多少是太多了,为什么不试试看您是否可以接受。您是对的,这个问题可能适合特定的环境。我说的太多不仅仅是。。。假设该类的每个类或实例有4个字节。我没有具体的背景,这只是好奇的问题。多少就是太多,你为什么不试着看看你是否可以接受。你是对的,这个问题可能符合特定的背景。我说的太多不仅仅是。。。假设该类的每个类或实例有4个字节。我没有具体的背景,只是好奇而已。谢谢你的回复。正确的问题应该是,它增加了多少尺寸。顺便说一下,一切都好了。谢谢,真的。对于当前接口,它不能少于两个指针。在旧的Boost版本中,在我开始优化它之前,它的大小是原来的三倍。我把它归结为上面提到的两个要点。我还建议将接口从
obj.shared\u从\u this()
更改为免费函数
std::shared\u从\u this(obj)
,这样可以将开销减少到一个指针,但Boost邮件列表上的建议没有得到足够的重视,因此从未达到标准:(谢谢你的回答。正确的问题应该是,它增加了多少大小。顺便说一句,一切都清楚了。谢谢你。是的。在当前的界面上,它不能少于两个指针。在旧的Boost版本中,在我开始优化它之前,它的大小是原来的三倍。我把它归结为提到的两个指针。我还建议更改从
obj.shared\u from_this()
到一个免费函数
std::shared\u from_this(obj)
的接口可以将开销减少到一个指针,但是Boost邮件列表上的建议没有得到足够的重视,因此从未达到标准:(