【发布时间】:2012-08-07 08:53:52
【问题描述】:
我有一个大小为 2 GB 的数组(填充了音频样本)。现在我想为该数组应用过滤器。此过滤器生成的样本比输入源多 50%。所以现在我需要创建大小为 3 GB 的新数组。现在我给了 5 GB 的内存使用。但是如果这个过滤器只能在那个源数组上运行,并且只需要这个数组中的一些空间。 问题:我可以在 C# 中分配一个内存,它可以在不创建第二个内存块的情况下调整大小,然后删除第一个内存块? 我只是想,如果 PC 中的内存被划分为 4 kB 页面(或更多),那么为什么 C# 不能(?)使用这个好功能?
【问题讨论】:
-
不相关,但要存储在内存中的内容很多 - 您可能会遇到其他问题,例如“2GB 限制” - 请在此处查看问题和答案:stackoverflow.com/questions/1087982/…
-
"所以现在我需要创建一个大小为 3 GB 的新数组。现在我使用了 5 GB 的内存。"为什么不直接流式传输数据?
-
因为流非常慢:(