C#数组复制效率,Take与Copy对比
2022/7/26 14:22:53
本文主要是介绍C#数组复制效率,Take与Copy对比,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
项目中需要频繁处理byte[],之前复制byte[]一直用的是array.skip(x).take(x).ToArray(),因为它写起来方便。
今天突然想起复制数组还有个方法Array.Copy(),不知道哪个方法更快一些,就写了代码进行测试。
测试代码:
MemoryStream stream = FileIO.GetFile(@"C:\Users\Admin\Desktop\000.psd"); byte[] byts = stream.ToArray(); stream.Close(); int i = 0; int n = 6000; Console.Out.WriteLine("开始测试"); Stopwatch sw = new Stopwatch(); sw.Start(); while (i < byts.Length) { try { var t = byts.Skip(i).Take(n).ToArray(); i += n; }catch(ArgumentException e) { i += n; } } sw.Stop(); Console.Out.WriteLine("\tTake总用时:{0}秒", sw.ElapsedMilliseconds * 0.001); i = 0; sw.Restart(); while(i < byts.Length) { try { byte[] t = new byte[n]; Array.Copy(byts, i, t, 0, n); i += n; }catch(ArgumentException e) { i += n; } } sw.Stop(); Console.Out.WriteLine("\tCopy总用时:{0}秒", sw.ElapsedMilliseconds * 0.001);
测试结果:
Take总用时:27.344秒 Copy总用时:0.035秒
这篇关于C#数组复制效率,Take与Copy对比的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具