为网络流端点缓存分配内存
- 更新时间2025-08-27
- 阅读时长2分钟
网络流端点使用FIFO缓冲区传递数据。创建网络流写入方端点和创建网络流读取方端点函数的数据类型和缓冲区大小输入端决定了缓冲区需要的内存空间大小。函数的元素分配模式决定何时为非标量数据分配初始缓冲区内存。
无论选择哪种分配模式,缓冲区大小都会影响应用程序占用的内存。测试应用程序时,请始终监控内存占用。
指定网络流端点缓冲区的分配模式
使用创建网络流写入方端点和创建网络流读取方端点函数的元素分配模式输入指定分配模式。
注: 元素分配模式输入不影响标量数据类型的传输。标量数据类型以预分配模式传输。
如应用程序传输非标量数据,且运行之前无法判断每个数据元素的大小时,使用需要时分配模式。在需要时分配模式下,网络流创建时,LabVIEW只分配每个数据元素指针所需大小的内存空间。LabVIEW为各个进入缓冲区的元素分配额外的内存空间。
如应用程序传输非标量数据,且运行之前可以判断数据元素的大小,使用预分配模式。在预分配模式下,创建网络流写入方端点和创建网络流读取方端点函数基于数据类型和写入方缓冲区大小或读取方缓冲区大小来分配初始缓冲区内存。
要预分配端点缓冲区,必须将预计的最大元素连接至数据类型输入端。下图显示了创建端点时创建网络流写入方端点函数为100个字符串元素分配内存。每个字符串元素的大小与范例字符串相等。
| 注:如运行时元素需要的内存空间大于预分配空间,可动态为这些元素分配额外的空间。 |