.Net Framework比.Net Core慢得多? [重复]

问题描述 投票:-2回答:2

这个问题在这里已有答案:

所以我在.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框架这么慢

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

谢谢您的帮助 :)

c# .net performance random
2个回答
0
投票

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

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

-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.