使用Visual Studio项目转换功能需谨慎

开发 后端
本文将为大家介绍使用Visual Studio项目转换功能时需要注意的问题,希望对各位.NET程序员有所帮助。

今年二月,现在的这个项目进入到开发阶段,在前一个版本的基础上进行增量开发,是Windows下基于MFC开发的应用程序。

[[12501]]

前一个版本使用VS2003开发,现在已经不能满足我们的需求,我们决定在新版本中升级到VS2008。

使我们升级的原因主要有这些:

VS2003在调试时不支持直接查看STL各种数据容器中的元素(其实通过指针可以查看某个元素的值,但不能一次查看所有元素); 不支持并行构建,二十多万行代码,构建一次需要近半个小时;

需要支持Vista/Win7操作系统,VS2003没有对UAC的支持,且不能直接增加manifest文件;

VS2008相对于VS2003其他的一些优化

升级的过程主要由VS2008的转换向导完成。按着提示的操作一步步下来,就能得到转换后的解决方案和工程文件。打开新的sln后构建,把有问题的地方改掉,将老的lib及dll文件也使用VS2008重新编译,构建出来的软件可以正常运行,看上去一切正常。

但是过了一段时间,测试人员发现Release版本的整体性能有大幅下降,几乎是原来的二分之一到三分之二。由于我们的产品的定位是海量数据分析,所以性能至关重要。我和另外一名开发人员一起来分析这个问题的原因,所有工程属性都是正确的,也查看了svn的提交记录,似乎一切都没有问题。后来,我们发现,当前工程的编译器选项中对于是否优化设置的是"***化速度/O2",但是改成"全局优化/Og"后性能反而有所提升。再查看原先的vcproj文件,发现虽然设置的是"***化速度/O2",但是在编译器的命令行中却没有"/O2"的选项。将编译器优化选项改为其他再改回"***化速度/O2",可以看到编译器命令行中增加了"/O2"选项。重新构建,性能恢复正常。

问题产生的原因,猜测应该是 VS2008转换VS2003的工程文件后丢失了优化选项,但是在工程属性页中错误的显示默认选项"***化速度/O2"。

所以,VS提供的项目转换功能是不可靠的,建议将转换后的工程文件完整仔细的检查一遍。或者干脆不转换,重新建立一套工程文件,把原先的代码添加进来,重新设置所有工程的属性。这样效率比较低,但是最保险。

原文标题:慎用Visual Studio对项目的转换功能

链接:http://www.cnblogs.com/Chase/archive/2010/07/03/1770416.html

【编辑推荐】

  1. WEB性能测试:你应该带上Visual Studio 2010
  2. Visual Studio 2010中手动添加图片文件
  3. 使用Visual Studio 2010统一管理数据库对象
  4. Visual Studio 2010 TFS探索之旅
  5. Visual Studio 2010更改颜色背景的方法

 

责任编辑:彭凡 来源: 博客园
相关推荐

2009-02-19 20:36:30

VistavLite副作用

2024-11-05 10:24:50

2010-11-15 10:22:35

中工网综合

2020-03-13 17:59:06

OA二开CIO观点

2009-08-16 09:25:55

Windows 7系统升级

2013-06-07 10:31:46

CIO虚拟化

2009-12-25 10:38:23

作战计划敏感部门USB使用

2012-12-13 21:34:30

2015-04-20 09:31:41

初创企业融资风险额度

2013-04-12 10:00:40

美海军CIO云计算

2016-02-25 10:11:48

2011-10-19 09:19:23

云计算数据安全

2013-11-13 10:07:26

Visual Stud微软

2010-12-14 09:15:50

Visual Stud

2010-11-23 14:09:39

数据中心托管

2016-05-31 14:28:21

云计算混合云

2013-09-09 18:21:14

2013-01-22 09:31:33

2010-08-18 10:15:53

2020-12-02 09:59:49

恶意软件Docker开发
点赞
收藏

51CTO技术栈公众号