陈红艳
摘 要:随着科学技术的不断发展,如何提高软件的使用性能逐渐成为研究人员较为关注的问题,同时也是软建设计中的难点所在。因此,文章在问题分析的基础上,通过对Intel平臺软件性能的优化,以Microsoft Visual C++的开发及例,对Intel处理器进行了分析,并对怎样编写适用特定Intel的处理器函数进行了编辑。
关键词:Intel平台 Visual C++ 编译器
中图分类号:TP311 文献标识码:A 文章编号:1674-098X(2015)10(c)-0143-02
在系统软件性能优化处理的过程中,其项目的设计相对费时、而且工作的难度较大,是软件开发高手的集聚地,使很多软件公司中的员工望而却步。但是,软件性能在产品市场中的竞争力是否可以确定成功,都占据着十分重要的作用。由于现阶段软件开发的技术相对复杂,怎样提高软件的使用性能成为软件工程是急需解决的问题。Intel的软件技术中可以为开发技术提供一定的便利性,在提高操作技能的同时为程序的编辑提供科学化的依据。
1 Intel编译器优化程序的性能分析
对于Intel编译器而言,优化程序的过程中,必须在性能的分析上深入进行,否则将影响后续的应用和开发工作。在目前,编辑器是一种非常重要的工具类型,其主要是服务于软件技术的开发阶段。一般而言,编辑器针对程序的基本性能,具有决定性的影响,其在具体的应用过程中,能够以最快的速度和最简单的方法,针对程序做出有效的改变,从而更好的构建出理想的编译器。
随着科学技术的不断优化,其功能性得到了一定的提升,对于一个性能好的编译器可以根据其基本的特点,进行功能的自动优化,技术开发人员也不用翻阅处理手册,就可以得到软件系统的有效开发。而Intel编译器可以作为整个领域中的领导者,在现阶段的开发和研究当中,通过选择和应用Intel 32位处理器,选择应用Intel64位处理器,在本质上提高了编译代码的应用效果,创造的经济效益和社会效益均有所提升。
2 使用Intel C++编译器
在Intel架构上实施软件优化,必须有效的使用Intel C++编译器来完成。Intel C++编译器主要是将高级语言,有效的翻译为机器语言的有效程序类型。在目前的研究和应用中,Intel C++编译器是一个具有标准化特点,能够与C++高度兼容的编译环境,获得了用户的广泛欢迎。同时,在使用Intel C++编译器的过程中,可针对不同的CPU进行优化处理,实现理想的效果。
在目前的Intel C++编译器应用当中,完全可根据用户的需求和软件优化的目的,通过采取不同的手段来完成工作。例如,在操作过程中,VectorC就是比较常见的Intel C++编译器形式,其在应用过程中,仅仅支持纯C。但是,其号称是最快的编译器,在很多情况下,都要强于其他的编译器。VectorC在使用的过程中,本身具备交互式的优化器,能够帮助用户,直接的观察到C代码对映的汇编代码,在Intel架构上优化软件时,效率和质量均获得了较大的保障。
Intel C++编译器在应用的过程中拥有很多的优化特征,合理运用了处理器的特性以及先进性的特点,为整个技术的优化及开发奠定了良好基础,在与其他软件协调工作的同时提高了软件的运用效率。以Microsoft Visual C++中Intel C++编译器的应用为例,对其开发的流程进行分析。当Intel C++编译器在安装结束之后,整个系统会自动集成到Microsoft Visual C++的环境之中,其中的Intel C++编辑器在运行的过程中可以支持Linux平台,它的性质与Windows的软件功能基本相同。
3 针对于特定处理器的优化
软件体统开发及应用的过程中,软件技术人员系统通过处理器中的所有性能,就可以将程序更好的运用,逐渐提高软件的应用效率、编辑器在应用的过程中是否可以支持新的处理指令以及代码调度的基本规则,与其程序的特征有着紧密的联系。Intel C++在应用 的过程中可以支持行的处理指令,同时也可以充分尊重代码调度指令,而且一些软件在应用的过程中只会应用特殊的指令,例如,Pentium4处理器在后续技术操作的过程中,其单指令更多的会根据其数据流进行扩展,其中的编译器可以在老式处理器的基础上执行相关的代码。对于这些编译器所输出的程序而言,在其处理的过程中可以获得更好的性能,为整个软件的开发及应用提供了系统性的依据。在Microsoft Visual C++ 6.0 中,这些选项可以从Microsoft Visual C++的Project Settings对话框中进行设置。
4 针对特定处理器函数的编写分析
在Intel架构上针对软件进行优化处理,需在特定处理函数的编写上做出足够的努力。在以往的工作中,虽然该方面有所研究,但总体上的深度不够,促使软件的优化并没有取得理想的成绩。因此,在今后的工作中,必须针对特定处理器函数的编写,做出深入的讨论,需结合以往的工作成果和当下的需求来有效的完成,实现长久的发展。
该文认为,针对特定处理器函数的编写工作,应在以下几个方面努力:首先,Intel技术的应用过程中,为了能够针对不同处理器本身所具有的基本性能,予以较强的满足,建议在特定的环境下,编写相应的指令、函数。例如,在MMX指令内容的编写过程中,必须在特定的环境下才能完成,同时还要得到系统的支持,需要在CPU的监测代码下来进行指导,否则很难得到理想的结果。其次,在调用该条指令的过程中,应做出有效的处理,将EAX寄存器置1。最后,在指令执行并且有效的完成后,处理器本身的信息,以及一些其他的信息,都可以在这个程序的支持下,通过利用不同的函数来选择并完成。值得注意的是,Intel软件的应用过程中,比较简单的方法是采用Intel C++的环境来进行相关的处理,有效的展现dispatch的具体特征,而编译器则是在信息处理的过程中,直接生成具有高效性质的检测代码,以此为处理器的具体执行提供较多的帮助,促使函数在执行的过程中,表现出简单的特点。
5 使用SIMD指令
Intel软件在具体的应用过程中,SIMD指令的应用,是非常重要的技术手段。从客观的角度来分析,通过应用SIMD指令,能够促使程序的一些基本性能,获得较大的提升,为用户提供更加方便的操作和更好的应用效果。但对于C语言或者是C++语言来讲,其本身并没有对方法进行系统性的应用,总体上还是有待提升的。
在以往技术操作的过程中,知识通过手绘语言的编写方式执行SIMD的指令,这种技术主要是额外的技术开发形式,知识对整个程序起到了调试及维护的作用。相对而言,在指令的具体处理过程当中,Intel架构的基础上,有效利用C++编译器,能够较好的在C语言或者是C++语言当中,针对SIMD指令,给予较大的支持,促使整体的程序在应用过程中,充分达到简便的特点,创造出更大的价值。其指令可以分析以下幾点。
5.1 Automatic Vectorzation
对于Automatic Vectorzation而言,其主要是一种自动向量化的技术,该技术在执行过程中,主要的目的是自动使用SIMD指示的功能。从已经掌握的方法和技术来看,Automatic Vectorzation主要是通过三种方法来完成操作的。首先,传统方法。以往针对Intel架构和软件优化的研究并不是特别深入,因此,Automatic Vectorzation的传统方法受到了高度的重视。传统方法,主要是针对语句的依赖关系进行分析,之后会结合循环分布技术、结合循环交换技术,促使内层循环的语句完成向量的有效执行。其次,指令级并行。Automatic Vectorzation在获得优化后,指令级并行是应用比较广泛的超字并行,通过系列的操作,有效生成向量化的代码。最后,模式匹配。Automatic Vectorzation为了进一步满足用户的需求,研究了模式匹配的引用方法,其在操作过程中,会按照既定的多种模式,在语句生成树的模式匹配方法上,产生有效的操作扩展命令,进而完成相关的操作和处理。
在Intel架构当中,Automatic Vectorzation是一种比较常见的处理方式,该处理方式在应用过程中表现出了较大的积极意义。相对于其他的处理方式而言,利用Automatic Vectorzation以后,能够促使Intel C++编译器可以更好的应用,尤其是在合理分析程序、合理执行循环指令等方面,均具有突出的表现。另外,在实际的操作和应用当中,Automatic Vectorzation能够指导一些相关的选项,将具体的内容,有效的通知给编译器,以此来确保SIMD指令在应用过程中,表现为安全的状态。
5.2 支持SIMD 的C++类库
Intel架构的基础上,软件优化是必须要执行的措施和手段,只有将软件不断的进行优化处理,才能确保日后的软件使用获得较大的价值提升。为此,在具体的研究过程中发现,倘若在SIMD指令的使用过程中,能够有效的支持C++类库,势必能够对日常的工作做出更大的贡献。就目前的研究而言,Intel C++编译器的使用,其本身就包含了SIMD的数据类型,通过相关技术的应用,能够针对数据进行相应的代码控制。例如,在数据类型的变量分析过程中,通过增加适量的数据处理元素,能够在本质上,更好的减少程序循环的次数,实现高效的运作,为日后的发展和工作提供较强的基础。
5.3 Intrinsics
在Intel架构上,开展软件优化的研究,Intrinsics是一项不可或缺的重要内容。从客观的工作来分析,Intel C++编译器在应用的过程中,针对Intrinsics函数,会予以有效的支持。另外,通过对SIMD指令的有效执行,实现更好的程序汇编效果。
6 结语
总而言之,文章通过对Intel C++编译器使用程序的优化分析,为其技术的优化以及编程的优化进行了系统性的分析,对于上述项目可以帮助程序开发,及时发现程序出现的问题并对其进行修补。只有在程序需要调控的情况下,才可以为编译器的优化提供科学化的依据,为其技术的应用及优化奠定良好的基础。
参考文献
[1] 深入理解C++11:C++ 11新特性解析与应用[M].机械工业出版社,2013.
[2] (美)费希尔.编译器构造:C语言描述:英文版[Z].2005.