我是DDS的新手,并尝试在Intellij-IDEA中编写一个简单的Java程序,该程序由3部分组成:发送数据的客户端模拟器。我的程序模拟器从客户端接收数据,……
使用-unboundedSupport时,必须在QoS文件中设置一些内存阈值。描述了这些阈值 这里 在用户手册中,他们定义了一个阈值,在该阈值中,样本的内存可以从预先分配的源动态分配或重用。这些必须在DataReader和DataWriter中设置。
这些阈值的设置实际上取决于您的数据大小,并且根据您的描述,我没有足够的信息为您提供在您的方案中有意义的示例。基本上,您不希望为每个样本动态分配内存。这可能会对性能产生影响,具体取决于您的数据速率。您希望选择大多数样本使用预分配内存的值。用户手册中“使用”一节中提供的示例 使用大数据时的Writer端内存管理 “是视频流,其中包含较大的较低频率的I帧和较小的更频繁的P帧。您可以查看该部分和相应的 DataReader部分 示例XML文件。
我设法使用这个例子来解决问题 这里
所需要的只是将自动生成的qos文件路径传递给订阅者/发布者构造函数,而不是在初始化域参与者之前编写这些行(这与上面链接中提供的示例不同,提供的示例对我不起作用) :
DomainParticipantFactoryQos factoryQos = new DomainParticipantFactoryQos(); DomainParticipantFactory.TheParticipantFactory.get_qos(factoryQos); factoryQos.profile.url_profile.add(0, qosPolicyPath); factoryQos.profile.url_profile.setMaximum(1); DomainParticipantFactory.TheParticipantFactory.set_qos(factoryQos);