ZBLOG

3.1.2.2.6. ParticipantResourceLimitsQos This QoS configures allocation limits and the use of physical memory for internal resources. List of QoS Policy data members: Data Member Name Type locators RemoteLocatorsAllocationAttributes particip...

3.1.2.2.6. ParticipantResourceLimitsQos

该QoS配置用于配置内部资源的分配限制和物理内存的使用。

QoS策略数据成员列表:

数据成员名称 类型 描述
locators RemoteLocatorsAllocationAttributes 定义远程定位器集合的限制。
participants ResourceLimitedContainerConfig 指定参与者集合的分配行为和限制。
readers ResourceLimitedContainerConfig 指定每个参与者所依赖的阅读器集合的分配行为和限制。
writers ResourceLimitedContainerConfig 指定每个参与者所依赖的写入器集合的分配行为和限制。
send_buffers SendBuffersAllocationAttributes 定义发送缓冲区管理器的分配行为和限制。
data_limits VariableLengthDataLimits 规定可变长度数据的限制。
content_filter ContentFilterProperty::AllocationConfiguration 规定内容过滤发现信息的限制。

注意:此QoS策略适用于DomainParticipant实体,无法在启用实体上更改。


RemoteLocatorsAllocationAttributes

该结构体保存远程定位器集合的限制。

结构体成员列表:

成员名称 类型 默认值
max_unicast_locators size_t 4
max_multicast_locators size_t 1
  • max_unicast_locators:控制为每个发现的远程实体保留的单播定位器最大数量。
  • max_multicast_locators:控制为每个发现的远程实体保留的多播定位器最大数量,默认值通常足够,因为为一个实体添加多个多播定位器没有意义。

ResourceLimitedContainerConfig

该结构体保存资源有限集合的限制及其分配配置,可以是固定大小或动态大小。

结构体成员列表:

成员名称 类型 默认值
initial size_t 0
maximum size_t std::numeric_limits::max()
increment size_t 1(动态大小),0(固定大小)
  • initial:指示在集合中预先分配元素数量。
  • maximum:指定允许在集合中的最大元素数量。
  • increment:当达到保留容量极限时,说明要添加多少项。

SendBuffersAllocationAttributes

该结构体保存发送缓冲区分配的限制。

结构体成员列表:

成员名称 类型 默认值
preallocated_number                               ​              ​                                          ​                 ​                     /size_t         =    = ·                                                                                                            /上面可能存在干扰
dynamic bool false
  • preallocated_number:控制要预先分配初始发送缓冲区数量。
  • dynamic:控制缓冲区管理器在没有可用发送缓冲区时如何处理。当设置为true时,将创建新的缓冲区;否则,将等待返回缓冲区。
  • network_buffers_config:定义每个发送缓冲区中网络缓冲区的分配行为和限制。

VariableLengthDataLimits

该结构体保存可变长度数据的限制。

成员列表:

|成会员名|类型|默认值| |—|—|—| |max_properties |size_t |0| |max_user_data |size_t |0| |max_partitions |size_t |0|


ContentFilterProperty::AllocationConfiguration

该结构体保存与内容过滤相关发现信息的限制。

成员列表:

||类型||默认值||

expression_initial_size size_t 0
expression_parameters ResourceLimitedContainerConfig {0,100,1}

示例代码

  1. // 此示例仅适用于 DomainParticipant 实体
  2. DomainParticipantQos participant_qos;
  3. // 设置参与者资源限额集合最大大小为3,且其分配配置为固定大小
  4. participant_qos.allocation().participants =
  5. eprosima::fastdds::ResourceLimitedContainerConfig::fixed_size_configuration(3u);
  6. // 设置读者资源限额集合最大大小为2,且其分配配置为固定大小
  7. participant_qos.allocation().readers =
  8. eprosima::fastdds::ResourceLimitedContainerConfig::fixed_size_configuration(2u);
  9. // 设置写者资源限额集合最大大小为1,且其分配配置为固定大小
  10. participant_qos.allocation().writers =
  11. eprosima::fastdds::ResourceLimitedContainerConfig::fixed_size_configuration(1u);
  12. // 设置划定数据部分最大尺寸到256
  13. participant_qos.allocation().data_limits.max_partitions = 256u;
  14. // 设置用户数据最大尺寸到256
  15. participant_qos.allocation().data_limits.max_user_data = 256u;
  16. // 设置属性数据最大尺寸到512
  17. participant_qos.allocation().data_limits.max_properties = 512u;
  18. // 设置预先配置过滤表达式初始尺寸到512
  19. participant_qos.allocation().content_filter.expression_initial_size = 512u;
  20. // 设置表达式参数最多4个,并将其分配配置设置为固定大小
  21. participant_qos.allocation().content_filter.expression_parameters =
  22. eprosima::fastdds::ResourceLimitedContainerConfig::fixed_size_configuration(4u);
  23. // 使用修改后的 QoS 创建相应 DomainParticipant 实例
  24. participant_ = factory_->create_participant(domain, participant_qos);

这个示例展示了如何设置DomainParticipant实体的一些重要QoS属性,包括对各类资源(如读取、写入、参加者等)的具体配置,以确保性能与资源管理能够满足应用需求。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?