.Net Framework比.Net Core慢得多?

时间:2017-12-29 03:55:57

标签: c# .net performance random

所以我在.Net Core中构建这个代码,它的工作非常好 但是当我在.NetFramework中使用这个代码时,它真的很慢而且没有加快步伐

    static int wichOneIsBigger(Random rand, int number)
    {
        //65-90 (Upper) 97 122 (Lower)
        Exception e = new Exception("Number must be 0 for lower case and 1 for upper case");
        if (number != 0 && number != 1)
            throw e;
        else
            if (number == 0)
            return rand.Next(97, 122);
        else
            return rand.Next(65 - 90);
    }
    static void Main()
    {
        string txt = null;

        Random rand = null;
        int length = 0;
        Console.WriteLine("Please type a number that is above 1: ");

        txt = Console.ReadLine();
        length = Convert.ToInt32(txt);

        string[] words = new string[length];
        for (int i = 0; i < length; i++)
        {
            rand = new Random();
            int characters = rand.Next(4, 10);
            int randCharacter = 0;
            int wichOne = 0;
            string word = "";
            for (int num = 0; num < characters; num++)
            {
                wichOne = rand.Next(0, 1);
                randCharacter = wichOneIsBigger(rand, wichOne);

                word += Convert.ToChar(randCharacter);
            }
            words[i] = word;
        }

        foreach (string item in words)
            Console.WriteLine(item);

        GC.Collect();
        Console.ReadKey();
    }

当我使用.Net Core时,它给我这个结果,例如长度为5:

gaerantd
dxunjxtw
gevnyiqb
xhpsvfqu
gnnkaulxg

但是当我使用.Net Framework时,它给了我这个

aist
aist
aist
aist
aist

为什么在.Net Framework中它不会加快步伐? 我没有编程2。5年,我不记得.Net Framework是这么慢

顺便问一下你们对我的代码有任何建议吗? 我可以写得更好等吗?

感谢您的帮助:)

2 个答案:

答案 0 :(得分:0)

这一行:rand = new Random();在你的循环中写的可能不是随机的,我不认为它与缓慢有关吗?将您的代码更改为以下内容:

static Random rand = new Random();
static void Main()
{
     //..etc
}

答案 1 :(得分:-1)

最有可能的原因是.Net Core是.Net的精简版本,因此排除了很多软件包。对于大多数应用程序,如果您可以使用.Net Core,它可能会更快。