• 数组复制性能测试


     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 表现最佳

  • 相关阅读:
    java7或java8新特性
    反射中,Class.forName和ClassLoader区别
    &和&&的区别
    JAVA时区问题总结
    索引失效原因及解决索引失效方法
    索引失效的7种情况
    MySQL Explain详解
    java switch
    java 生成注释文档
    spring 获取配置文件的值
  • 原文地址:https://www.cnblogs.com/yy1234/p/7339732.html
Copyright © 2020-2023  润新知