VB.NET中,二维列表性能是否比一维列表低至1000倍?

2026-05-06 10:521阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计396个文字,预计阅读时间需要2分钟。

VB.NET中,二维列表性能是否比一维列表低至1000倍?

请考虑以下代码:

vbDim arr1 As New List(Of Double)Dim arr2 As New List(Of Object)Dim timeStart As DateTime=NowFor x As Integer=0 To 1000000 arr1.Add(3.14159)NextDim timeEnd As DateTime=NowMsgBox(耗时: & (timeEnd - timeStart).Seconds & 秒)

请考虑以下代码:

Dim arr1 As New List(Of Double) Dim arr2 As New List(Of Object) Dim timeStart As DateTime = Now For x As Integer = 0 To 1000000 arr1.Add(3.14159) Next Dim timeEnd As DateTime = Now MsgBox(((timeEnd - timeStart).Seconds).ToString()) timeStart = Now arr2.Add(New List(Of Double)) For x As Integer = 0 To 1000000 arr2(0).add(3.14159) Next timeEnd = Now MsgBox(((timeEnd - timeStart).Seconds).ToString())

它涉及2个列表.第一个是1维,第二个是2维.

第一个例程(在第一个列表上运行)在大约.015秒内完成.然而,第二个例程(在第二个列表上运行)需要大约10秒钟.唯一的区别是第二个列表是二维的.

我在这里错过了什么吗?有没有办法加快速度,或者我做错了什么?我有一个程序,需要几个二维数组,它现在运行速度非常慢.我如何加快速度,以便获得与列表为1维时相同的反馈?

问题在于一行代码.

使arr2强类型,它会更快,更快……

VB.NET中,二维列表性能是否比一维列表低至1000倍?

Dim arr2 As New List(Of List(Of Double))

我进行了一次快速测试,它从我的电脑上的大约7秒钟变为17毫秒.

正如CodeInChaos正确指出的那样,缓慢的原因更多地与.Add()方法有关,而不是任何东西.

编辑:
用Option Strict On编写VB.NET是将来避免这种问题的一种方法.通过执行此操作,您将看到编译时错误,其中显示“Option Strict On禁止后期绑定”.

本文共计396个文字,预计阅读时间需要2分钟。

VB.NET中,二维列表性能是否比一维列表低至1000倍?

请考虑以下代码:

vbDim arr1 As New List(Of Double)Dim arr2 As New List(Of Object)Dim timeStart As DateTime=NowFor x As Integer=0 To 1000000 arr1.Add(3.14159)NextDim timeEnd As DateTime=NowMsgBox(耗时: & (timeEnd - timeStart).Seconds & 秒)

请考虑以下代码:

Dim arr1 As New List(Of Double) Dim arr2 As New List(Of Object) Dim timeStart As DateTime = Now For x As Integer = 0 To 1000000 arr1.Add(3.14159) Next Dim timeEnd As DateTime = Now MsgBox(((timeEnd - timeStart).Seconds).ToString()) timeStart = Now arr2.Add(New List(Of Double)) For x As Integer = 0 To 1000000 arr2(0).add(3.14159) Next timeEnd = Now MsgBox(((timeEnd - timeStart).Seconds).ToString())

它涉及2个列表.第一个是1维,第二个是2维.

第一个例程(在第一个列表上运行)在大约.015秒内完成.然而,第二个例程(在第二个列表上运行)需要大约10秒钟.唯一的区别是第二个列表是二维的.

我在这里错过了什么吗?有没有办法加快速度,或者我做错了什么?我有一个程序,需要几个二维数组,它现在运行速度非常慢.我如何加快速度,以便获得与列表为1维时相同的反馈?

问题在于一行代码.

使arr2强类型,它会更快,更快……

VB.NET中,二维列表性能是否比一维列表低至1000倍?

Dim arr2 As New List(Of List(Of Double))

我进行了一次快速测试,它从我的电脑上的大约7秒钟变为17毫秒.

正如CodeInChaos正确指出的那样,缓慢的原因更多地与.Add()方法有关,而不是任何东西.

编辑:
用Option Strict On编写VB.NET是将来避免这种问题的一种方法.通过执行此操作,您将看到编译时错误,其中显示“Option Strict On禁止后期绑定”.