为数组/缓冲区保留空间以备重复使用

本文关键字:空间 数组 缓冲区 保留 | 更新日期: 2023-09-27 17:59:31

我使用的是大数组(每个数组有很多MB),但在任何时候都只有一个数组——一个被处理,另一个被创建来代替它。它们的长度不相等,但长度确实有上限。

有没有一种方法可以为尽可能大的阵列分配空间(我可以找到),并使用所需的任何长度来创建每个新阵列,而不是每次都分配一个新阵列。我不能使用完全相同的数组并使用变量作为长度,因为我需要将数组提供给我不控制的其他方法,这些方法需要恰好是其中包含的数据的长度(这不是恒定的)。我记得读到一些类可以做到这一点,我们要求它提供缓冲区,然后将其返回给该类。

为数组/缓冲区保留空间以备重复使用

您可以创建自己的内存管理器,以便在您拥有的数组太小时创建最新的数组,或者返回以前分配的数组。

您也可以使用InMemoryRandomAccessStream来存储您的数据。此流将调整自身大小以容纳您必须存储的数据。使用DataWriter或DataReader,您可以轻松地将数据插入流中/从流中读取数据。

要从InMemoryRandomAccessStream获取输入或输出流,可以使用:GttInputStreamAt(0)或GetOutputStreamAt