gpt4 book ai didi

c# - 在c#中使用pc中的所有内核

转载 作者:行者123 更新时间:2023-11-30 18:48:30 26 4
gpt4 key购买 nike

*请注意,我只是在测试以了解这一点。

我正在尝试通过 Parallel.For() 方法使用我计算机的所有内核。这工作得很好,但是当我用普通的 for 循环尝试相同的方法时,它会更快。并行方法需要 16 秒,而普通方法只需要 6 秒。

我希望你能告诉我我做错了什么。

更新代码

        DateTime parallelStart = new DateTime();
DateTime parallelFinish = new DateTime();
DateTime singeStart = new DateTime();
DateTime singeFinish = new DateTime();
parallelStart = DateTime.Now;
int inputData = 0;

Parallel.For(0, 1000000000, i =>
{
inputData = inputData++;
inputData = inputData++;
inputData = inputData++;
inputData = inputData++;
inputData = inputData++;
inputData = inputData++;
inputData = inputData++;
inputData = inputData++;
});

parallelFinish = DateTime.Now;
singeStart = DateTime.Now;

for (int i = 0; i < 1000000000; i++)
{
inputData = inputData++;
inputData = inputData++;
inputData = inputData++;
inputData = inputData++;
inputData = inputData++;
inputData = inputData++;
inputData = inputData++;
inputData = inputData++;
}

singeFinish = DateTime.Now;
MessageBox.Show("Parallel execution time: " + (parallelFinish - parallelStart).Seconds + "\n" +
"Singe execution time: " + (singeFinish - singeStart).Seconds);

第一个代码:

DateTime parallelStart = new DateTime();
DateTime parallelFinish = new DateTime();
DateTime singeStart = new DateTime();
DateTime singeFinish = new DateTime();
parallelStart = DateTime.Now;

Parallel.For(0, 2000000000, i =>
{
var inputData = 0;
});

parallelFinish = DateTime.Now;
singeStart = DateTime.Now;

for (int i = 0; i < 2000000000; i++)
{
var inputData = 0;
}

singeFinish = DateTime.Now;
MessageBox.Show("Parallel execution time: " + (parallelFinish - parallelStart).Seconds + "\n" + "Singe execution time: " + (singeFinish - singeStart).Seconds);

最佳答案

好吧,哪个更快:自己不做任何工作,或者雇用十个人,每人做十分之一的不工作?

你做错的是你的例子完全是人为的。抖动充分意识到,将零分配给同一个未使用的本地一遍又一遍是没有意义的,因此它可能正在消除工作。即使不是,那项工作也是微不足道的。设置所有线程的工作比您自己完成工作要大。

做一个真正的测试——做一些光线追踪或生成分形或其他东西。 做一些现实的事情,在一个线程上花费几分钟或几小时。您不能合理地期望在一项太容易的工作上看到节省。

关于c# - 在c#中使用pc中的所有内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8821031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com