我将VB.Net 2代码(VS 2005)移植到VB.Net 4(VS 2010)。到目前为止,事情进展相对平稳。但是,在测试我的新移植代码时,我遇到了一个奇怪的行为。
在VS 2005(.Net 2)中,我有一个填充数据的DataTable。然后,我使用DataAdapter将更新发送回SQL Server。当我执行SqlClient.SqlDataAdapter.Update()命令时,它大约在4秒内执行。 VS 2010(.Net 4)中同一个表上的相同代码在1分17秒内运行。这是完全不可接受的。但是,我不知道为什么正在发生。 .Update()方法是一个内部命令,而不是我以任何方式修改的命令。它没有错误,它只是非常缓慢。
有人有什么想法吗?
答案 0 :(得分:2)
在与Microsoft直接合作数月后......找到了解决方案/答案。
我感觉不是很糟糕,因为它花了六个不同的微软程序员和近六个月的时间来发现答案。显然,Visual Studio 2010的IDE与Visual Studio 2005的版本有很大不同。在IDE中运行应用程序时,VS2010挂钩到正在运行的可执行文件实际上会大大降低应用程序的性能。在没有附加调试器的情况下运行应用程序时有一个隐藏选项(在菜单结构中找不到)。热键是CTRL + F5。当应用程序在此模式下运行时,我们的性能问题就会消失。这是一个如此愚蠢和简单的答案......但是让我感觉更好的两件事是VS2005没有这个问题,“运行无调试器”选项根本没有在菜单中列出,而且它花了很多钱六位微软程序员确定了这个问题。
所以对于其他似乎有同样问题的人来说......尝试CTRL + F5。 : - )