写点什么

Visual Studio 如何提高 C++ 性能

  • 2012-11-28
  • 本文字数:941 字

    阅读完需:约 3 分钟

在 Build 2012 开发者大会上,Jim Radigan 和 Don McCrady 做了一个演讲,讨论了改进的 Visual Studio 2012(VS2012)编译器为 C++ 程序开发者带来了哪些益处。Radigan 首先从最初的 Pentium 处理器的出现开始对计算能力不断提高的历史进行了简要的概述,继而引出了自己的话题“一切都是为了性能:使用 Visual C++ 2012 最大化硬件利用率”。

第一代 Pentium 处理器有 310 万个晶体管,而目前这一代 Ivy Bridge 处理器有 14 亿个晶体管。正如 McCrady 之后所提到的,C++ AMP 允许开发者通过一种语言来使用这一切——包括 CPU 以及越来越多地集成于 CPU 内核(CPU Dies)中的 GPU(不包括独立扩展卡之中的 GPU)。

与一般的代码相比,以 C++ AMP 为目标的代码往往能够提供最佳性能,接下来 Radigan 提到了 VS2012 中的自动矢量化和自动并行化优化,这意味着在很多情况下仅重新编译已有的 C++ 代码就能直接获益。这也导致了 VS2012 中优化器的大小是之前版本中的两倍。

开发者想要确保编译器检查代码从而进行加速时,可以对代码片段进行标记。下面的编译器指令

复制代码
#pragma loop(hint_parallel(4))

允许开发者向编译器提供线索:包含该编译器指令的循环应该被扩展到多个核上(该代码片段中是 4 个核)。当然,编译器依然会进行全面的分析,所以如果被标记的代码块不适合并行化,那么编译器就不会进行任何优化。

Radigan 通过一个光线跟踪的演示证明了仅是简单地在 VS2012 下重新编译源代码就带来了 16 倍的性能提升。Radigan 强调说,尽管 VS2012 改进了编译器性能,但是并没有能够自动产生更快速的代码的“灵丹妙药”。编译器团队会继续寻求创新,因为 Windows8、SQL Server 以及 Office 都是 C++ 应用程序。

Radigan 指出虽然现在并没有任何可用的东西,但是他想向 AMP 中添加原生的 C#支持。(目前 C#开发者能够通过 P/Invoke使用 AMP。)最后,C++ AMP 规范是一个开放标准,但是现在 Apple 的平台(iOS 或者 Mac OS X)上并没有相应的实现,但是理论上是可以的。

英文原文地址 http://www.infoq.com/news/2012/11/vs2012_CPP


感谢臧秀涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-11-28 07:283770
用户头像

发布了 321 篇内容, 共 134.6 次阅读, 收获喜欢 19 次。

关注

评论

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

高校迎新管理系统:基于 smardaten AI + 无代码开发实践

数睿数据

Java 后端

2026年必备5大境外舆情网站盘点

沃观Wovision

舆情监测 海外舆情监测 舆情监测网站 全球舆情监测

无代码开发实践 | 基于权限管理能力快速开发人力资源管理系统

数睿数据

Java 后端

区块链Web3 系统的开发

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

快手&南大联合发布自适应推理框架HiPO,突破LLM“过度思考”困局

快手技术

技术 算法 大模型

MyEMS 开源能源系统:解锁工业、园区、商业的双碳解题思路

开源能源管理系统

开源 能源管理系统

【FAQ】HarmonyOS SDK 闭源开放能力 — Form Kit

HarmonyOS SDK

HarmonyOS NEXT HarmonyOS SDK应用服务

5款能让你快人一步的海外舆情监控平台

沃观Wovision

海外舆情监控 海外舆情 海外舆情监测 海外舆情平台

无代码开发实践|基于业务流能力快速开发市场监管系统,实现投诉处理快速响应

数睿数据

Java 后端

AI 英语学习 App 的开发

北京木奇移动技术有限公司

AI教育 软件外包公司 AI英语

甩掉 “授权费包袱”!MyEMS:用开源技术让企业能源监控、分析、优化一步到位

开源能源管理系统

开源 能源管理系统

NocoBase 本周更新汇总:优化及缺陷修复

NocoBase

开源 低代码 无代码 版本更新

无代码开发实践:基于列表能力快速落地 【项目管理系统】

数睿数据

Java 后端

1688商品列表API技术文档

Datafox(数据狐)

1688商品列表接口 1688API 1688数据采集 关键词搜索1688列表接口

smardaten AI + 无代码开发实践:基于自然语言交互快速开发【苏超赛事管理系统】

数睿数据

Java 后端

信息化项目验收材料大全,软件平台验收文档

金陵老街

1688商品详情API接口技术解析

Datafox(数据狐)

1688API接口 1688API 1688数据采集 1688商品详情API 1688商品详情采集

Playwright为什么老是跑不稳?12个坑踩完我终于懂了!

测试人

软件测试

股票财务分析系统的主要功能

北京木奇移动技术有限公司

AI技术 软件外包公司 财报分析

低代码开发平台2025年最新排名:从全能平台到垂直专家的全景透视与破局之道

星云低代码中间件

低代码 数字化

西格电力直供微电网设计①:并网点、隔离点、保护点选址策略

西格电力

微电网 绿电直连 直供微电网 微电网管理系统

GPT-6 会带来科学革命?奥特曼最新设想:AI CEO、便宜医疗与全新计算机

掘金安东尼

基于 WebGL 的数字孪生项目开发

北京木奇移动技术有限公司

数字孪生 软件外包公司 webgl开发

对比评测Dify vs Coze:谁才是“AI工作流”的终极答案?

测试人

软件测试

MyEMS:不止是开源 EMS,更是企业降本、减碳、合规的 “全能工具包”

开源能源管理系统

开源 能源管理系统

2026年海外舆情监控TOP 5排行榜

沃观Wovision

舆情监测 舆情监测系统 海外舆情监测

2025年11月最新:AI数据分析工具与ai分析软件的数据可视化平台推荐与分析洞察哪家专业

新消费日报

海外舆情服务流程全解析:从需求对接到报告交付的完整周期

沃观Wovision

海外舆情 海外舆情监测 舆情服务

数字孪生项目技术栈详解

北京木奇移动技术有限公司

数字孪生 软件外包公司 webgl开发

Android渗透测试:Burp证书与Frida环境配置指南

qife122

移动安全 Android逆向

免费实用!这5个境外舆情网站让你快速查询品牌海外声量

沃观Wovision

境外舆情监测 舆情监测网站 境外舆情

Visual Studio如何提高C++性能_语言 & 开发_Jeff Martin_InfoQ精选文章