[英]How to get best performance while reading a byte array into chunks? MemoryStream or Buffer.BlockCopy?
我有一个代码,我必须从字节数组中读取数据到32KB的块。 原始字节[]的大小可以从100KB到1MB。
现在我在循环中使用Buffer.BlockCopy从原始字节数组创建另一个32KB的字节数组。 通过使用MemoryStream,这种实现相对难以实现,因为它提供了一种很好的读取块的方法。
这部分代码经常执行。 所以我需要一种可以提供最佳性能的方法。
我应该首先将字节数组转换为内存流还是直接用buffer.blockcopy读取是最佳选择?
谢谢
我以前做过基准测试, Buffer.BlockCopy几乎总是比Array.Copy快。 事实上,根据我的测试,如果你使用的缓冲区大于~128kb,那么memcp执行速度最快,但当然,这都是相对的。
以下是一些微观基准测试结果:
但是在一天结束的时候: “如果你有两匹马,你想知道两匹中的哪一匹更快,那么你的马匹就会更快。 ”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.