VB.NET:二维列表比一维列表慢近1000倍?
发布时间:2020-12-17 07:16:59 所属栏目:百科 来源:网络整理
导读:请考虑以下代码: 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).To
请考虑以下代码:
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强类型,它会更快,更快…… Dim arr2 As New List(Of List(Of Double)) 我进行了一次快速测试,它从我的电脑上的大约7秒钟变为17毫秒. 正如CodeInChaos正确指出的那样,缓慢的原因更多地与.Add()方法有关,而不是任何东西. 编辑: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Oracle下创建database link两种方法
- xml简单知识点
- ldap – Postgresql的Multiples身份验证方法
- c# – 如何在.Net Core 1.0中使用XPathSelectElement?
- 安装程序找不到office.zh-cn\Setup.xml的解决方案
- ruby-on-rails – 使用method_added了解ruby元编程以动态覆
- ruby-on-rails – Rails:为什么我在控制器方法中访问此成员
- 如何规划SQLite数据库中的模式更改?
- c# – 捕获仅在Release上发生的.NET错误,不会抛出异常
- React Native – 无法使用PermissionsAndroid请求位置权限