0

我有一个代码,我必须从字节数组中读取数据到 32KB 的块中。原始 byte[] 的大小可以从 100KB 到 1MB。

现在我在循环中使用 Buffer.BlockCopy 从原始字节数组创建另一个 32KB 的字节数组。这种实现相对难以通过使用 MemoryStream 来实现,因为它提供了一种以块形式读取的好方法。

我的这部分代码经常执行。所以我需要一种可以提供最佳性能的方法。

我应该首先将字节数组转换为内存流还是直接使用 buffer.blockcopy 读取是最佳选择?

谢谢

4

1 回答 1

2

我过去曾进行过基准测试,而Buffer.BlockCopy几乎总是比Array.Copy快。事实上,根据我的测试,如果您使用的缓冲区大于 ~128kb,那么memcp的执行速度最快,但当然,这都是相对的。

以下是一些微基准测试结果:

在此处输入图像描述

但归根结底:“如果你有两匹马,并且你想知道哪两匹马跑得更快,那就让你的马赛跑吧。

于 2013-07-19T05:11:25.777 回答