在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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

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

关注

评论

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

高性能椭圆曲线加密算法25519优化解析

qife122

密码学 形式化验证

火山引擎Data Agent:突破传统BI局限,用智能对话打造"数据决策大脑"

字节跳动数据平台

都说 AI 能给研发开外挂,可企业为啥总玩不转?答案来了!

行云创新

软件工程 氛围编程 vibe coding

Proxmox Backup Server 4.0 正式版发布 - 开源企业级备份解决方案

sysin

Proxmox

3000字节C语言实现GPT-2聊天机器人

qife122

自然语言处理 低代码实现

垂直和领域 Agent 的护城河:上下文工程

阿里巴巴云原生

阿里云 云原生 agent

数智先锋 | Bonree ONE 赋能通威股份有限公司提升全栈可观测性能力

博睿数据

2025年空气净化器品牌选购避坑指南:除甲醛核心技术解析

编程猫

Elasticsearch Enterprise 9.1.0 (macOS, Linux, Windows) - 分布式搜索和分析引擎

sysin

elasticsearch

Nexpose 8.17.0 for Linux & Windows - 漏洞扫描

sysin

Nexpose

低代码+大模型组合拳:JeecgBoot 分类器节点让流程编排更聪明

JEECG低代码

低代码 AIGC 流程编排 JeecgBoot

Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台

sysin

Splunk Enterprise

HCL AppScan Standard 10.9.0 新增功能简介

sysin

AppScan

Nessus Professional 10.9 Auto Installer for Windows (updated August 2025)

sysin

Nessus

AI内容检测新工具SynthID与水印技术解析

qife122

ai检测 内容认证

ApacheCon 2025中国开源年度报告:Apache Doris 国内第一

SelectDB

Apache 开源 apache doris 实时分析 数据库 大数据

文化误读与意见倒灌:品牌如何用全球舆情监测防范海外舆情危机?

沃观Wovision

出海企业 海外舆情监控 沃观Wovision 舆情监测系统

Cisco Expressway Release X15.3.0 - 统一通信网关

sysin

Cisco

Xcode 26 beta 5 (17A5295f) - Apple 平台 IDE

sysin

xcode

Metasploit Pro 4.22.8-2025080401 (Linux, Windows) - 专业渗透测试框架

sysin

Metasploit

Proxmox VE 9.0 正式版发布 - 开源虚拟化管理平台

sysin

proxmoxve

程序员:氛围编程爽啊!老板:我睡不着哇……

行云创新

平台工程 AI 编码 AI 编码隐患

Amazon Bedrock的两年征程:从大放厥词到战略实现

Alter

FBI 成功瓦解 Hive 勒索软件网络的行动与技术内幕

qife122

网络安全 执法行动

Bonree ONE发布直通车 | 可观测平台如何深度应用LLM技术

博睿数据

Elasticsearch Enterprise 8.19 (macOS, Linux, Windows) - 分布式搜索和分析引擎

sysin

elasticsearch

给「AI+软件工程」泼一瓢冷水

行云创新

氛围编程 AI + 软件工程 AI将取代程序员

Metasploit Pro 4.22.8-2025073001 (Linux, Windows) - 专业渗透测试框架

sysin

Metasploit

多智能体评估框架MAJ-EVAL:实现LLM自动评估与人类多维度评价对齐

qife122

自然语言处理 自动评估

能自定义、能分享的智能体,还支持生成随机头像

北京中暄互动广告传媒有限公司

扣子,正式拥抱开源!

北京中暄互动广告传媒有限公司

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