【发布时间】:2022-01-11 02:04:27
【问题描述】:
我有一个某种类型的数组(short[]、int[] 或类似的基本类型)。我想通过流发送它,所以我需要它是byte[]。标准解决方案似乎是创建一个新的byte[] 数组,并使用BitConverter。这种方法的问题在于性能和内存使用 - 它需要分配所有新内存,复制到新内存中,然后将 byte[] 写入流。
我非常想将int[] 数组的原始后备内存用作byte[] 数组,以便我可以就地发送它。为了这个非常明显和非常显着的性能差异,我愿意强制要求发送和接收系统必须是相同的字节序。
有没有办法将int[] 或类似的数组作为byte[] 就地处理?
【问题讨论】:
-
如果
Span<T>不可用,请记住,如果您正在写入流,则不必一次转换整个数组,您可以逐块进行。它不会为您节省处理周期,但不会花费您太多的内存
标签: c# arrays .net serialization casting