写点什么

Visual Studio 终于开始关注性能问题

  • 2007-09-14
  • 本文字数:1183 字

    阅读完需:约 4 分钟

Visual Studio 的性能问题一直以来都让人们头痛不已,且在各个版本中有越来越差的趋势。在一些小的项目中,这类性能问题并不会带来太大问题,不过若是解决方案中包含很多项目,或者是解决方案中包含着一个大型项目的话,性能问题将给开发带来很大影响。

在 Channel 9 的一段采访视频中, Cameron McColl 对微软公司未能完整测试大型项目中的 Visual Studio 性能问题表示了道歉。随后 Cameron 介绍了现有的一些典型性能问题,并给出了 Visual Studio 2008 中针对这些问题的解决方案。

Cameron 提到的第一个问题就是单步调试代码时的性能。很多.NET 开发者都遇到过这类问题——每一行代码的单步调试都可能会带来 5-10 秒的延迟。 虽然这种情况并不是特别常见,不过在出现时却非常让人沮丧。Cameron 并没有提到过于深入的细节,不过据称这并不仅仅是 Visual Studio 的问题——操作系统现存的一个缺陷也为每个单步调试添加了额外的一秒钟延迟。对该问题的补丁将在 VS 2005 Server Pack 1 和 Visual Studio 2008 中给出。

Cameron 提到的第二个问题就是在输入代码时,Visual Studio 可能会突然间失去响应一段时间。导致这个问题有很多原因,其中一些已经被修复。其中一个原因就是包含了错误、警告和 todo 的任务列表。当任 务列表被修改时,其中所有的项目都将被移除,然后再重新添加。这样重复计算滚动条位置的实现逻辑给性能带来了很大的影响。

另外一个原因则与 VB 的后台编译器有关。后台编译器给 Visual Basic 带来了非常强大的设计期支持,例如即使的代码完成以及错误检测功能等。C#和 C++ 等语言并没有这个功能,因此为了了解当前的代码结构,开发人员有时将不得不需要重新编译项目。

不过后台编译器所带来的负面影响在于,当 Visual Studio 打开某个解决方案时,需要等待后台编译器的运行。对于大型项目来讲,这个问题尤为显得致命。作为解决方案,当类型和列表的信息尚未完成时,显示这部分内容的下拉列表框将会被暂时禁用。

另外一个问题就是,Visual Studio 允许开发人员取消某个长时间的操作。若某个操作需要从后台编译器获取信息,那么 IDE 在显示出进度条和“取消”按钮之前只好等待一段时间。

另外一个问题就是在开始编辑大型 Web 应用程序中的 aspx 页面时,将会有一段明显的延时。与代码编辑器类似的是,发生这个问题的原因也是 IDE 在等待后 台编译器。现在的解决方案是代码编辑器将立即启动,不过代码高亮和自动完成功能将暂时无法使用,直到后台编译器完成其工作之后。

Cameron 所提到的最后一个问题是有关编译的。对于某个包含了 25 个项目、大概 3000 个文件的 VS 2005 项目,一次重新编译将花费大概 45 分钟的时间。不过在 VS 2008 种却只要 1 分钟就够了。为什么会这样呢?因为在 VS 2005 中,若某个项目被其他 N 个项目所引用,那么该项目则将被重新编译 N+1 次。

查看英文原文: Visual Studio to Finally Address Performance Issues

2007-09-14 20:58897
用户头像

发布了 37 篇内容, 共 89464 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

适用于 Mac 系统的 SSH 工具Termius Beta for Mac

Mac相关知识分享

VMware Fusion Pro 13 for Mac(VM虚拟机)中文版

Mac相关知识分享

多所头部高校教师参加鸿蒙生态学堂·师资培训(贵安站),持续赋能万千开发者

最新动态

Redis Desktop Manager for Mac(Redis可视化工具)

Mac相关知识分享

鸿蒙网络编程系列39-Web组件打印示例

长弓三石

DevEco Studio 开发实例 HarmonyOS NEXT 网络与连接

Microsoft Remote Desktop Beta for Mac(微软远程连接工具)

Mac相关知识分享

文献解读-Sentieon DNAscope LongRead – A highly Accurate, Fast, and Efficient Pipeline for Germline Variant Calling from PacBio HiFi

INSVAST

基因数据分析 生信服务 长读长测序 Sentieon

提升前端开发效率的五种实用技术

天翼云开发者社区

前端开发

Microsoft Word 2019 for mac(word mac)中文版

Mac相关知识分享

互联网 Java 面试八股文出炉(2024最新整理)

采菊东篱下

java面试

深圳!入选北斗规模应用试点城市

江湖老铁

CST电磁仿真软件如何计算有源S参数

思茂信息

cst cst使用教程 cst电磁仿真

交易所开发:开启数字金融新时代

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 代币开发

VMware ESXi 8.0U3 Huawei (华为) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025

sysin

华为 huawei esxi OEM unlocker

生成对抗网络GAN简介

天翼云开发者社区

网络 GAN

深度解读GaussDB逻辑解码技术原理

华为云开发者联盟

数据库 GaussDB DRS #SQL

OpenHarmony首次亮相欧洲开源会议

科技热闻

区块链开发:DAPP、NFT、DAO、公链与钱包软件

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 代币开发

一文彻底弄懂spring boot自动转配的过程

不在线第一只蜗牛

Java Spring Boot 后端

解密虾皮商品详情API接口:获取与运用

科普小能手

API 接口 API 测试 虾皮商品详情接口 虾皮商品详情数据接口 虾皮API接口

颠覆性创新,低成本一天内快速上线体育赛事直播平台!

软件开发-梦幻运营部

捷行2024Train-the-Trainer微课程系列-用户故事地图实操工作坊

ShineScrum

摊牌了,创业失败了

禅道项目管理

创业 企业管理 决策 战略规划 决策管理

软件测试学习笔记丨Selenium复用已打开浏览器

测试人

软件测试

Java EasyExcel 导出报内存溢出如何解决

威哥爱编程

Java EasyExcel JavaEE

详解MES系统的生产过程实时监控与异常处理

万界星空科技

生产管理系统 mes 制造业数字化 万界星空科技mes 生产过程管理

史上最全ThreadLocal 详解

EquatorCoco

Java 算法 JVM

VMware Aria Operations for Networks 6.13 发布,新增功能概览

sysin

vmware aria

HyperWorks的模型简化

智造软件

软件 教程 Hypermesh

私有云容灾方案设计浅谈

天翼云开发者社区

云计算 私有云

一块显卡理解一部完整电影!智源联合多所高校推出小时级的超长视频理解大模型Video-XL

智源研究院

Visual Studio终于开始关注性能问题_.NET_Jonathan Allen_InfoQ精选文章