写点什么

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:581024
用户头像

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

关注

评论

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

社恐?自我介绍时大脑一片空白?

阿Q说代码

个人成长 社恐 职场破冰 入职公司

面试突击59:一个表中可以有多个自增列吗?

王磊

Java 面试

Eureka的InstanceInfoReplicator类(服务注册辅助工具)

程序员欣宸

Java SpringCloud 6月月更

Linux开发_curl调用网络接口

DS小龙哥

6月月更

如何进行高效简洁的电子文档管理

小炮

PHP开发的网站,如何实现批量打印快递单的功能?

迷彩

编程 记录 开发 php扩展 6月月更

Java String 手工引用指针

HoneyMoose

Gitlab运维篇之——备份及恢复

阿呆

#GitLab 备份恢复

【直播回顾】战码先锋第六期:共建测试子系统,赋能开发者提高代码质量

OpenHarmony开发者

OpenHarmony

深圳java培训 | Java设计模式之建造者模式

@零度

设计模式 JAVA开发

初识ElasticSearch

阿Q说代码

搜索引擎 lucene ES 选举 脑裂

本周四晚19:00战码先锋第7期直播丨三方应用开发者如何为开源做贡献

OpenHarmony开发者

OpenHarmony

Fabric.js IText 手动设置斜体 🎋

德育处主任

JavaScript 前端 canvas Fabric.js 6月月更

Java 字符串引用(String Interning)

HoneyMoose

Java String 文字(Literal)和 对象(Object)初始化

HoneyMoose

一文走近ZMQ

No Silver Bullet

6月月更 ZMQ

智能合约dapp系统开发模式定制方案

开发微hkkf5566

DingOS服务提交IPO配置指南

鼎道智联

前端 开发 IPO配置

今天,SysAK 是如何实现业务抖动监控及诊断?&手把手带你体验Anolis OS|第25-26期

OpenAnolis小助手

Linux sig 龙蜥大讲堂 开源贡献 社区运维

Java String 性能和优化

HoneyMoose

5道面试题,拿捏String底层原理!

码农参上

string 底层原理 死磕 Java 基础

缓存穿透利器之「布隆过滤器」

Ayue、

redis 布隆过滤器

2022年盲盒软件开发商业模式深度解析

开源直播系统源码

软件开发 盲盒开发 盲盒软件

Java String 构造方法中的内存分配

HoneyMoose

DOM编程

大熊G

JavaScript 前端 6月月更

钟珊珊:被爆锤后的工程师会起飞|OneFlow U

OneFlow

自我介绍 实习

Java自定义Once方法保障单次执行

FunTester

社区文章|MOSN 构建 Subset 优化思路分享

SOFAStack

负载均衡 开源 开发者 算法

我对新能源汽车的一些看法(37/100)

hackstoic

新能源汽车 生活杂谈

IDE 的主题应该用亮色还是暗色?终极答案来了!

胡说云原生

ide vscode IDEA goland ide主题

攻防演练 | 基于ATT&CK的威胁狩猎实践案例

青藤云安全

网络安全 攻防演练 威胁狩猎

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