我们最近将一个Winforms项目从Visual Studio 2008迁移到了Visual Studio 2012.转换过程非常顺利,一切都很好,但我们现在正在努力与winforms设计师一起工作,这个设计运行得非常慢
举一个例子,如果我们打开一个小表单(表单包含两个文本框,一个数字更新和两个按钮 - 所有标准的内置控件,没有第三方),它将需要大约40-45秒2012年,然而在2008年它将在1或2秒内开放。对于我们较大的形式,这种差异更加明显。在2008年,打开表单大约需要7秒钟,但在2012年,它需要超过6分钟。最糟糕的是,这是一个阻塞动作,VS2012在打开表单时几乎完全没有响应。这也是通过单击表单的.h来实现的,所以我们不能仅仅通过坚持代码本身来轻松避免它。
还有其他人经历过这个吗?有谁知道它为什么会发生,如果有什么可以做的呢?
其他信息:我们的应用程序是C ++ / CLI winforms应用程序。在我们所有运行Windows 7 x64的开发机器上都可以看到这种行为。 我的机器是Core i7 860 CPU,内存为12Gb(现在我正在对以上内容进行基准测试时超过60%) - 绰绰有余,我想。在任何情况下,我的系统都不会运行缓慢,它只是VS2012设计师。
编辑:只是为了进一步澄清,我们还没有安装任何插件或类似的东西。这是VS2012的原始安装。EDIT2:它似乎也不是网络的东西。
答案 0 :(得分:4)
我不知道延迟的原因,但我可以告诉你一种确定原因的方法。使用另一个Visual Studio实例来调试它。附加到devenv.exe进程:Debugging Visual Studio
如果你偶尔断开所有线程,在延迟期间,从统计学上讲,你可能会发现一个包含导致延迟的调用的堆栈。这是一个“穷人的探究者”,但效果很好。我以前使用此技术来发现和报告Visual Studio 2010设计器代码生成器中的回归性能更改(Microsoft未修复)。
答案 1 :(得分:0)
我在Visual Studio 2010上,我遇到了同样的事情。当我在Designer中并且单击相应的.h文件或者我向GUI添加另一个元素时,VS开始"计算"设计的新代码完全阻塞CPU,直到完全挂起。
我的Windows窗体包含许多元素。随着时间的推移,我越来越多地添加到用户界面,从Designer到代码的切换越来越慢。目前每次更改设计中的任何内容时,从Designer切换到代码大约需要4分钟(!!!)。
我可以看到它不能成为一个网络问题。这本身就是VS本身的一个问题,它无法以快速有效的方式计算代码。
答案 2 :(得分:0)
我无法提供解决此问题的任何指导。但我可以告诉你我也拥有它。它发生在Visual Studio 2010和2012中。我使用没有WPF的Windows窗体,所以我认为问题与此无关。
答案 3 :(得分:0)
好的,所以这个问题已经开放了一年多了,没有人能够找到具体答案,为什么winform设计师这么慢。
我最近回到VS2012并更新到Update 3.尽管有各种发行说明,但我没有看到这个领域的性能提升,但我很高兴地报告设计师现在更快,更快。
我的开发机器自从我最初发布以来已经升级了,我现在运行了AMD FX-8350 CPU,16GB内存和SSD。当我第一次拿到这台新机器时,我尝试的第一件事是VS2012,我发现它和以前一样慢。现在它能够加载相同的形式,过去需要花费6分钟+约15秒。这仍然是VS2008的近两倍,但我可以忍受这一点,因为它是360s +的巨大飞跃。我只提到这一点,因为我无法确定设计器中是否存在修复错误,或仅仅是性能改进 - 可能会使用额外的处理器内核。换句话说,您的里程可能会有所不同,但如果您尚未尝试过,请尝试安装Update 3.
您可以在此处下载更新3:http://www.microsoft.com/en-us/download/details.aspx?id=39305
答案 4 :(得分:0)
我 思考 我遇到了同样的问题,(尽管有VS2013)但也许我观察到的可能对其他人有帮助......我&# 39; m责备我从32位WinXP升级到64位Win7。这就是原因。
以前我在WinXP机器上安装了VS2008 Express。主板已经死了,所以我得到了一台闪亮的新Windows 7机器。相比之下,这款新机器的SSD速度极快,内存增加一倍,处理器速度更快。
最初我安装了VS2008,但在我有机会使用表单编辑器之前,我意识到由于其他原因我需要VS2013。因此,仍然安装了两个版本的Visual Studio。
猜猜看,在我超高速的Windows 7机器上,两个版本的visual studio都有一个非常慢的表单编辑器。我有一个非常复杂的表单,我已经加载到两个版本的VS.表单是相同的,除了一个已移植到Visual Studio 2013的事实。
此计算机不到2周,我确信它可以清除恶意软件。
我还注意到在Visual Studio的任何一个版本中,当我单击窗体设计器中的任何控件时,在延迟期间的几秒钟内,鼠标指针变为指针和"尺寸"光标,两者都是半透明的......这告诉我它在两者之间快速交替鼠标光标,这么快就会显得半透明。
我的猜测是Windows 7有不同的渲染图形的方式,特别是在表单编辑器中。 (顺便说一句,我们是在查看表单编辑器中的实际控件,还是只是图形表示?显然,他们不会在表单编辑器中工作。)
我尝试将主题转换为" Windows classic" (没有半透明,方角和灰色背景)没有明显区别。
答案 5 :(得分:0)
尝试将C ++项目的编译器设置从/ clr:pure更改为/ clr。