Visual C++利用Intel C++ 编译器提升多核性能与多媒体指令支持获取更高的程序效率与缩小程序体积

Intel c++编译器有下列优点,建议VC++项目开发采用intel c++编译器取代VS自带c++编译器:

与 Microsoft Visual C++ 相兼容,可以嵌入 Microsoft Visual Studio 开发环境。

支持最新的多核处理器,并提供安全功能,可以通过执行堆栈桢运行时错误检查,使得缓冲区溢出安全漏洞更不易受到攻击。

支持多线程应用程序,支持 Open MP,拥有自动并行化功能。

遵循 ANSI C/C++ 及 ISO C/C++ 的标准。

包括Intel Debugger 和代码覆盖工具,支持优化代码和多线程应用的调试,减少代码缺陷,提高开发效率。

支持最新的多核处理器。支持最新处理器的优化功能能大大提高程序在这些处理器上的效能。
支持运行时对堆栈的检查,减少缓冲器益处导致的安全缺陷。
包含IA-32,Itanium(安腾)2以及支持64位内存扩展技术开发工具。
增强Intel Debugger对优化代码的支持

Intel c++编译器集成到 Microsoft Visual Studio* 2005 和 2008 中。使用英特尔 C++ 编译器、Microsoft Visual C++* 编译器或两者同时使用!
· 多线程应用支持包括 11.0 中的新特性、OpenMP 3.0(数据并行和当前任务并行)以及自动并行,以支持简单有效的软件线程。
· 自动矢量化可实现代码并行,从而利用我们最新的处理器中的 SIMD 流指令扩展(SSE)指令集架构(SSE、SSE2、SSE3、SSSE3 和 SSE4)。
· 高性能并行优化程序(HPO)将调整并优化循环,并确保自动矢量化、OpenMP 或自动并行能够最充分地利用高速缓存和内存访问,SIMD 指令集和多个内核。在单一通道中进行编译,能够缩短编译时间并产生更多可靠的代码。 
· 过程间优化(IPO)能够动态地改进中小型函数的程序,特别是循环内包含调用的程序。IPO 分析可提供关于缺陷和编码错误的反馈信息(如未初始化的变量或 OpenMP API 问题),其它编译器不能探测到此类错误。
· 档案导引优化(PGO)通过降低指令快取置换(cache-thrashing)、重组代码布局、缩减代码长度并减少分支预测失误来提高应用程序性能。
· 英特尔® 线程构建模块是一个屡获殊荣的 C++ 模板库,能够为任务吸取线程,以创建可靠的、便携的、可扩充的并行应用。英特尔® TBB 是实施并行应用和释放多核平台性能的最有效方式。
· 英特尔® 数学核心函数库包括支持最出色性能的优化及可扩充的数学程序,同时无缝提供从当前到未来多核平台的前向扩充。
· 英特尔® 集成性能基元是一个广泛的多核就绪函数库,高度优化的软件功能可用于多媒体数据处理和通信应用。

那么我们来实际操作一下利用Intel C++编译器的使用吧

先安装,遵循下列流程,

1.安装初始化界面

2.进入安装流程

3.许可协议

4.许可协议后进行安装

5.选择试用

6.选择完全安装

8.进行安装

9.进行安装

10.安装完成

11.编译器属性设置

12 编译器前后路径设置

13.项目采用intel C++编译器进行优化编译

14.确认

15.intel C++编译器进行优化并输出

本人曾经2008-2009开发了8个VC项目,其中7个都用intel c++编译器可以大幅度提升程序性能,

尤其是多媒体性能,计算性能,以及多核条件下的性能要明显强于visual studio 自带C++编译器

同等条件下,intel c++编译器已经几乎无限接近汇编语言的执行效率了,同等条件下,速度更快,体积越小。

本人的7个项目都利用intel c++编译器提升了性能。推荐大家采用intel C++编译器。但是一个嵌入式项目例外,

但是在嵌入式平台,基于winCE,winmobile的MFC不推荐使用intel C++编译器,因为底层芯片基于ARM,无法发挥intel c++编译器的功效,反而不如VS自带的编译器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449521.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Backtrader交易基础

查看账户情况: class TestStrategy(bt.Strategy):def next(self):print(当前可用资金, self.broker.getcash())print(当前总资产, self.broker.getvalue())print(当前持仓量, self.broker.getposition(self.data).size)print(当前持仓成本, self.broker.getpositio…

IP地址分类/IP地址10开头和172开头和192开头的区别

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 IP地址分类/IP地址10开头和172开头和192开头的区别/判断是否同一网段 简单来说在公司或企业内部看到的就基本都是内网IP,AB…

Redis数据结构之简单动态字符串SDS

Redis的底层数据结构非常多,其中包括SDS、ZipList、SkipList、LinkedList、HashTable、Intset等。如果你对Redis的理解还只停留在get、set的水平的话,是远远不足以应对面试提问的。本文简单介绍了Redis底层最重要的数据结构 - 简单动态字符串&#xff08…

Centos7 安装OpenTSDB

Centos7 安装OpenTSDB https://www.imzcy.cn/1697.html转载于:https://www.cnblogs.com/RHadoop-Hive/p/10563385.html

职场潜规则冷思考:别让老板“杀”了你

一位3年前共事过的同事走了,就在他以200多万的房贷代价拿到大门钥匙的时候,猝然倒在新房的楼梯上。另一个曾经在同一战壕里冲锋陷阵的同事被老板辞掉了,兢兢业业,起早贪黑,竟然没有熬过35岁下岗这一关,这时…

Backtrader交易基础2

成交价格确定: Order.Market 市价单,以当时市场价格成交的订单,不需要自己设定价格。市价单能被快速达成交易,防止踏空,尽快止损/止盈; 按下一个 Bar (即生成订单的那个交易日的下一个交易日&…

windows 小技巧

2019独角兽企业重金招聘Python工程师标准>>> 桌面图标显示不全、图标呈现白色方块 ie4uinit -show 关闭占用指定端口的进程 获取进程: netstat -ano | findstr 端口号关闭进程:taskkill -f -pid 进程号文件被占用 打开任务管理器,切换到 性能…

进一步了解 apt-get 的几个命令

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 用 apt-get 也很久了,没多想它的实现,最近遇到 gstreamer 装不上的问题,才多看看了它 apt-get 就是…

java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)

集合:集合是Java提供的一种容器,可以用来存储多个数据; 集合与数组的区别:集合的长度是可变的,数组的长度是固定的 集合中存储的数据必须是引用类型数据; ArrayList回顾: public class Person {…

backtrader数据基础

cerebro bt.Cerebro() cerebro.addstrategy(TestStrategy2) codes[600862.SH,300326.SZ,300394.SZ] #加载最近两日交易数据 for code in codes:feed Addmoredata(dataname get_data(code,20200506),namecode)cerebro.adddata(feed) cerebro.run() 数据查看: cl…

谈判学:三招了解对方底线

导读:谈判者都希望能了解对方的底线,最直接的一招就是将对手变成“朋友”,只是这种“内奸法”毕竟不是常规之法。大多数情况下,谈判双方也不可能像《无间道》一样在对方阵营安放卧底,但是我们完全可以通过一些办法来揣…

JSLint检测Javascript语法规范

前端javascript代码编写中,有一个不错的工具叫JSLint,可以检查代码规范化,压缩JS,CSS等,但是他的语法规范检查个人觉得太“苛刻”了,会提示各种各样的问题修改建议,有时候提示的信息我们看的莫名…

Apt 命令解说(apt-get update、apt-cache search package、apt-get install package、apt-get remove )

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 高级打包工具(英语:Advanced Packaging Tools,缩写为APT)是Debian及其派生发行版的软件包…

SQL SERVER 2012 AlwaysOn - 维护篇 03

搭建 AlwaysOn 是件非常繁琐的工作,需要从两方面考虑,操作系统层面和数据库层面,AlwaysOn 非常依赖于操作系统,域控,群集,节点等概念; DBA 不但要熟悉数据库也要熟悉操作系统的一些概念&#xf…

指标研究与多周期

哪些地方会用到指标 ? 回顾一下 Backtrader 的主要功能模块和回测流程(见:Backtrader 来了!)可以发现,只有在编写策略Strategy 时才会涉及到指标的计算和使用,而且是 Strategy 中的 __init__()…

区块链BAAS平台:公共或私人区块链编程以用于各种用途

2019独角兽企业重金招聘Python工程师标准>>> 人们可以为公共或私人区块链编程以用于各种用途。理论上,我认为牺牲权力下放的方面可以解决区块链技术背后的许多当前问题。区块链仍然可以包容,而不是分散。这如何解决当前的一些问题&#xff1f…

CURL 是什么

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。 它支持文件上传和下载,所以是综合传输工…

易用性问题回复

针对淘宝网为例,以一次完整的购物流程为背景,我们分析了在淘宝网中的一些易用性的体现,主要场景如下图所示: 在本场景中,新用户下载淘宝app时,第一次打开应用,淘宝app会出现新手指引,教会用户如…

易盛极星期货量化教学

我目前量化实盘做期货交易用的是这个软件。主要就是因为它可以做套利合约,还有就是国企的外包,安全(vnpy的狗咬狗害怕)。 策略模板: 设置全局参数变量: #导入包 import talib #选择合约代码 code1 #设…

eBay是如何进行大数据集元数据发现的

很多大数据系统每天都会收集数PB的数据。这类系统通常主要用于查询给定时间范围内的原始数据记录,并使用了多个数据过滤器。但是,要发现或识别存在于这些大型数据集中的唯一属性可能很困难。 在大型数据集上执行运行时聚合(例如应用程序在特定…