Sho*_*ess 8 hang visual-studio-2012
我在Visual Studio中进行PHP开发,我的解决方案包含PHP,SSRS和SQL Server(SSDT)的项目.我正在使用TFS进行版本控制.所以我的开发环境中有很多可能"出错".
我正在经历间歇性的挂起,通常约5分钟一个片段.Visual Studio为我提供了等待光标,如果我在VS中的任何地方单击,则窗口会变暗.然后我只需要等待它.有时我可以结束devenv.exe任务,有时则需要几分钟才能终止任务.如果我感到耐心,我只是等待并最终(大约5分钟)VS恢复生机.即使我终止了这个过程,我也从未经历过数据丢失,源代码控制等问题.
当我保存时,它有时会发生.有时当我办理登机手续时.有时当我退房.有时当我建立.我一直无法辨别出任何形式的行为.
我的所有工作站资源都很好 - 没有RAM或i/o或网络或CPU问题.
我该怎么做才能解决这个问题?我可以在某种日志记录模式下运行VS,这样我就可以确定在这些锁定期间花了这么长时间吗?
要打开visual studio中的日志记录,请运行:devenv.exe/log
我个人会用快捷方式做到这一点.
考虑删除从持续集成构建中遗留下来的旧 TFS 工作区定义。
我们在大型 Team Foundation Server 项目树中遇到了同样的问题。有时,但并非总是如此,在 Visual Studio 2010 或 Visual Studio 2012 中打开解决方案会完全挂起,如上所述。VS 2010 最脆弱;VS 2012 似乎不那么脆弱,但它仍然会挂起。
通过监视 TFS Server 机器和底层 SQL Server 机器上的服务器活动,我们能够获得一些线索。某个查询存储过程在 SQL Server 中使用了过多的 CPU 时间。我们将此存储过程名称跟踪到一个 TFS 操作,该操作涉及扫描其他用户签出文件的 TFS 工作区定义。
我们的 TFS 环境已经使用了 3 年多,我们一直在使用持续集成构建定义,使用开发人员工作站的“僵尸大军”作为 TFS 构建代理主机。我们还为主要版本创建了新的 TFS 分支。每个分支包含大约 20 个独立的 Visual Studio 解决方案,以及它们自己的构建定义。
随着时间的推移,我们在每个开发人员工作站上积累了大约 2,000 个 TFS 工作区定义。我们一次有大约 10 个工作站,它们都有自己的定义。
使用 Visual Studio 命令窗口并以 TFS 管理员身份运行,我们使用此命令来识别由我们的“构建用户”创建的所有工作区:
tf 工作区 /collection:tfservername\collectionname /owner:ourbuilduser >c:\tf_ws_del.bat
然后我们使用全局替换和 Notepad++ 编辑器宏记录器将每个结果行转换为这种形式:
tf 工作区 /delete /collection:tfservername\collectionname workspacename;ourbuilduser <c:\yes.txt
其中 C:\yes.txt 包含一行“y”
我们还使用了一些人工判断来删除以我们最近的 TFS 分支命名的工作区的删除行。
然后我们在同一个 Visual Studio 命令窗口中运行该 c:\tfs_ws_del.bat 脚本并耐心等待它完成。
最终结果:我们的 Visual Studio 解决方案打开速度非常快。甚至在源代码管理资源管理器中浏览文件夹层次结构也大大加快了速度。
警告:大量工作区的删除操作可能会大量扩展底层 SQL Server 上的 TempDB。与您的 DBA 协调以监视 SQL Server 计算机上的空间。通过图形化的 TFS 管理员控制台工具停止和重新启动 TFS 集合有助于回收一些 TempDB 空间并将其返回到其内部“空闲块”列表。
| 归档时间: |
|
| 查看次数: |
11947 次 |
| 最近记录: |