数组复制性能测试
1 using System; 2 using System.Collections; 3 using System.Collections.Generic; 4 using System.Data; 5 using System.Diagnostics; 6 using System.IO; 7 using System.Linq; 8 using System.Runtime.InteropServices; 9 using System.Threading; 10 using EmisData; 11 using Newtonsoft.Json; 12 13 namespace CLibrary.ConsoleApp 14 { 15 class Program 16 { 17 static void Main(string[] args) 18 { 19 int len = 50000000; 20 int[] newArray = new int[len]; 21 Stopwatch sw = new Stopwatch(); 22 int[] allArray = new int[len]; 23 for (int i = 0; i < len; i++) 24 { 25 allArray[i] = i; 26 } 27 28 sw.Start(); 29 Thread.Sleep(1000); 30 Array.Copy(allArray, newArray, len); 31 sw.Stop(); 32 Console.WriteLine("Array.Copy 执行时间(毫秒)"+ sw.ElapsedMilliseconds); 33 34 Array.Clear(newArray, 0, len); 35 sw.Restart(); 36 Thread.Sleep(1000); 37 newArray = (int[])allArray.Clone(); 38 sw.Stop(); 39 Console.WriteLine("Array.Clone 执行时间(毫秒)" + sw.ElapsedMilliseconds); 40 41 Array.Clear(newArray, 0, len); 42 sw.Restart(); 43 Thread.Sleep(1000); 44 Buffer.BlockCopy(allArray, 0, newArray, 0, len); 45 sw.Stop(); 46 Console.WriteLine("Buffer.BlockCopy 执行时间(毫秒)" + sw.ElapsedMilliseconds); 47 48 Console.ReadKey(); 49 } 50 51 52 53 } 54 55 }
测试结果:
可见:Buffer.BlockCopy 表现最佳
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决