扩大
缩小

数组复制性能测试

 

复制代码
 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 表现最佳

posted on   禅道  阅读(226)  评论(0编辑  收藏  举报

编辑推荐:
· 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语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示