相关疑难解决方法(0)

PLINQ执行比LINQ更糟糕

令人惊讶的是,使用PLINQ并没有为我创建的小测试案例带来好处; 事实上,它甚至比平时更糟糕的LINQ.

这是测试代码:

    int repeatedCount = 10000000;
    private void button1_Click(object sender, EventArgs e)
    {
        var currTime = DateTime.Now;
        var strList = Enumerable.Repeat(10, repeatedCount);
        var result = strList.AsParallel().Sum();

        var currTime2 = DateTime.Now;
        textBox1.Text = (currTime2.Ticks-currTime.Ticks).ToString();

    }

    private void button2_Click(object sender, EventArgs e)
    {
        var currTime = DateTime.Now;
        var strList = Enumerable.Repeat(10, repeatedCount);
        var result = strList.Sum();

        var currTime2 = DateTime.Now;
        textBox2.Text = (currTime2.Ticks - currTime.Ticks).ToString();
    }
Run Code Online (Sandbox Code Playgroud)

结果?

textbox1: 3437500
textbox2: 781250
Run Code Online (Sandbox Code Playgroud)

因此,LINQ比PLINQ花费更少的时间来完成类似的操作!

我究竟做错了什么?还是有一种我不知道的扭曲?

编辑:我已经更新了我的代码以使用秒表,然而,相同的行为仍然存在.为了打折JIT的效果,我实际上尝试了几次点击两者button1并且button2没有特别的顺序.虽然我得到的时间可能不同,但定性行为仍然存在:在这种情况下PLINQ确实较慢.

c# plinq c#-4.0

13
推荐指数
3
解决办法
3428
查看次数

标签 统计

c# ×1

c#-4.0 ×1

plinq ×1