gpt4 book ai didi

vb.net - 处理速度表现奇怪

转载 作者:行者123 更新时间:2023-12-02 03:38:07 25 4
gpt4 key购买 nike

这个简单的问题让我有些困惑。我有 2 个处理器,它们都可以在 33.0360723 中单独执行 10 亿次操作。然而他们两个一起在 27.4996964 中进行操作。

这对我来说毫无意义,如果一个处理器的任务时间是 X,那么它们两个加起来不应该是 X/2 吗?

我的代码:

Function calc(ByVal i As Integer, ByVal result As String)
Math.Sqrt(i)
Return True

End Function
Sub Main()
Dim result As String = Nothing


Dim starttime As TimeSpan
starttime = DateTime.Now.TimeOfDay
For i = 0 To 1000000000
calc(i, result)
Next
Console.WriteLine("A single processor runs 1 billion operations in: ")
Console.WriteLine(DateTime.Now.TimeOfDay - starttime)



starttime = DateTime.Now.TimeOfDay

Parallel.For(0, 1000000000, Function(i) calc(i, result))

Console.WriteLine("All your processors run 1 billion operations in: ")
Console.WriteLine(DateTime.Now.TimeOfDay - starttime)
Console.ReadLine()

End Sub

PS:我在 VB.net 中为此编写了代码。

最佳答案

如果一个人可以在 30 分钟内步行 2 英里,那么 2 个人步行同样的 2 英里需要多长时间?

撇开所有笑话不谈,MSDN 上的文档说:执行一个 for(在 Visual Basic 中为 For)循环,其中迭代可以并行运行。这里的关键字是 MAY

您让 CLR 完成工作,经验表明 .net CLR 并不总是按照您认为的方式工作。

在我的例子中(复制粘贴代码)单处理器 - 21.495 秒,所有处理器:7.03 秒。我在 32 位 Windows 7 上有一个 i7 870 CPU。

关于vb.net - 处理速度表现奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22003129/

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