ZBLOG

15.6.1.3. Parameters on the DataReader Every DataReader holds an internal collection with information about every ReaderResourceLimitsQos to which it matches. By default, this collection is fully dynamic, meaning that new memory is allocated when...

15.6.1.3. DataReader上的参数

每个DataReader内部持有一个集合,其中包含有关每个匹配的ReaderResourceLimitsQos的信息。默认情况下,这个集合是完全动态的,这意味着在匹配新的DataWriter时会分配新的内存。然而,DataReaderQos具有一个数据成员reader_resource_limits(),其类型为ReaderResourceLimitsQos,允许配置DataReader上的内存分配行为。

ReaderResourceLimitsQos提供了一个名为matched_publisher_allocation的数据成员,其类型为ResourceLimitedContainerConfig,允许配置预期匹配的DataWriters集合的最大大小,以便在初始化DataReader时进行预分配,如下所示。请参阅ResourceLimitedContainerConfig以获取该数据成员提供的其他配置选项的完整描述。

C++ 示例

DataReaderQos qos;

// 将匹配的DataWriters数量固定为1
// 这将有效地在初始化期间预分配内存
qos.reader_resource_limits().matched_publisher_allocation =
        eprosima::fastdds::ResourceLimitedContainerConfig::fixed_size_configuration(1u);

XML 示例

<?xml version="1.0" encoding="UTF-8" ?>
<profiles xmlns="http://www.eprosima.com">
    <data_reader profile_name="reader_profile_qos_resource_limit">
        <!-- 限制到1个匹配的写入器 -->
        <matchedPublishersAllocation>
            <initial>1</initial>
            <maximum>1</maximum>
            <increment>0</increment>
        </matchedPublishersAllocation>
    </data_reader>
</profiles>

警告

将匹配的DataWriters集合配置为固定大小会有效限制要匹配的数据写入器数量。一旦达到配置的限制,将忽略任何新的DataWriter。在给定示例中,如果出现第四个(可能匹配的)DataWriter,由于集合已经满了,它将不会被匹配。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=21884

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?