怎么看在C优化代码

我可以使用探查,可执行文件的大小和时间采取的执行检查的优化。

我可以得到最优化的结果。 但我有这些问题,

  • 如何获得优化的C代码。
  • 其中算法或用于C优化代码的方法。

提前致谢。

--------------解决方案-------------

你可以得到最优化的使用选项的想法-fdump-tree-optimized与海湾合作委员会。 你会得到一个优化的文件。 你不能运行的代码,但使用,你可以得到最优化的想法。 不要忘了包括-O2-O3或其他级别。

通常代码没有优化为C.一般优化过程完成后不久C已被转换成某种形式的中间表示的是更容易为一个编译器以存储器一起工作。 因此,直接回答你的问题是,优化的C代码永远不会存在。

C编译器通常不会产生优化的C在任何阶段。 相反,编译器开启C转换简化内部表示,大多数编译器优化将在其中的一个中间表示或做更多的事。 那么编译器生成汇编或从一个二进制文件。

你可以得到的最接近的可能是编译文件汇编,没有优化,并再次与最高优化,然后比较组件输出。 你必须很好地掌握汇编语言来做到这一点。 如果你正在使用gcc阅读有关-S和-O开关怎么做(或不做)这一点。

如果你的目标是编写更快的代码,那么,最好的办法是通过仔细使用分析器使用更好的算法和数据结构在C层次编写更好的C。

如果你的目标只是为了了解最优化,尽量程序优化和编译器优化维基百科上的一些基本信息。

如果你正在使用gcc,用一个参数来优化代码,并使用--save-临时工作为参数。 每个人都说用gcc编译时,C代码没有经过优化的C是错误的程度。 C编写递归斐波那契序列发生器,并通读预处理代码。 上述论点也保存在目录GCC生成组件从调用。 如果你更舒服英特尔语法组装,使用-masm =英特尔作为一个参数为好。

如果你了解汇编程序,您可以检查由编译器生成的汇编代码。

分类:C# 时间:2012-01-01 人气:0
本文关键词: 优化,C#
分享到:

相关文章

  • 什么样的搜索引擎优化技术的需要申请我的网站 2012-01-01

    我有一个网站叫http://www.demandb.com,这是一个分类网站......任何人能告诉我,我的网站在不同的搜索引擎优化技术,让大量的游客....我力尚未开始搜索引擎优化本网站... 所以,请帮我在让我了解不同的搜索引擎优化技术的地方在我的网站能够排名靠前,并获得大量的游客. --------------解决方案------------- 内容,内容,内容,然后将首标标记h1等等). h2 这些是由一个站点的迄今最重要的部分. 它可以是很难得到像你这样的网站的内容,但是这就是谷歌希望

  • 使用AVX指令禁用EXP()优化​​? 2012-01-02

    我在VC写一个前馈净++使用AVX内部函数. 我在C#中通过的PInvoke调用此代码. 我的表现调用一个计算大循环,包括exp函数(函数时)是用于〜160M的loopsize 1000毫秒. 当我调用使用AVX内部函数,并随后用EXP()函数的任何 ,我的表现下降到约〜8000MS进行同样的操作. 需要注意的是)的函数计算EXP(是标准C,和使用该AVX内在该呼叫可以是在被处理数据方面完全无关. 某种标志是在运行时获得的地方跳闸. 换一种说法, A(); // 1000ms calculate

  • 是否有在Adobe AIR触摸/移动应用进行了优化任何ActionScript 3组件/ UI? 2012-01-02

    我一直在寻找一个星期左右,发现这样的纯AS3 UI /组件: 我试图创建是(Adobe AIR的移动)选项/设置菜单的游戏,根据特定的屏幕大小/像素密度可能需要向下滚动选项,以列表位置的视觉指示器模仿了Android的滚动列表和视觉线索时与惯性到达列表的末端太 的MinimalComps(minimalcomps.com) Razorberry(razorberry.com/blog/components/) 但他们都是为鼠标点击和滚动条的使用作为例如互动区进行了优化: http://www.r

  • 优化的邮件()为公司防火墙 2012-01-02

    在这里. 我创建一个通讯为我公司 - 接收器将最有可能使用他们公司的电子邮件地址的其他公司的员工. 问题是,当我使用发送邮件mail()它最通常是由防火墙将其标记为垃圾邮件逮住,它被送往由网络服务器. 我如何优化功能,因此拒绝邮件的数量会以某种方式减少. 我敢肯定,我不能达到100%,但至少大多数接收机应该得到他们的邮件. 目前,这是怎样的函数如下: mail($email, $subject, $message, '-f info@mycompany.com\r\nfrom: noreply@

  • 什么是优化级(G ++)使用,而Compairing的C ++编写的两种不同的算法? 2012-01-02

    我已经写在C ++两种算法. 据我所知,这是传统的编译与 -O0 -NDEBUG(G ++),而比较两种算法的性能(无症状它们是一样的). 但我认为,优化级别是不公平的,他们中的一个,因为它使用STL在任何情况下. 它采用纯阵列方案优于STL-重算法快5倍,而用-O0选项编译. 但是性能上的差异没有太大的不同,当我编译他们-O2 -NDEBUG. 有没有什么办法可以得到最好的STL(我得到的矢量[]运营商沉重的性能损失)的优化级别-O0? 你用什么优化级别(也可能是变量,如-NDEBUG),而比

  • 优化音量 2012-01-02

    如何优化卷是在Windows 22%支离破碎8.1 \\?\音量(4b4b ...试图优化和它什么都不做. --------------解决方案------------- 您好托尼, 感谢您发布您在微软社区论坛的问题. 我想知道这个问题的一些信息,以便我们能进一步协助您. 你尝试进行碎片整理硬盘? 按照提供的链接中的步骤. 请参考KARTHIK Vengaloor回答2013年12月6日,微软论坛. http://answers.microsoft.com/en-us/windows/forum

  • 在C ++编译器的优化后藤的效果 2012-01-02

    什么是使用的性能优势或处罚goto一个现代的C ++编译器? 我写一个C ++代码生成和使用goto将使它更容易写. 没有人会碰得到的C ++文件,因此没有得到所有的"GOTO是坏"在我身上 . 作为一个好处,他们节省使用临时变量. 我想知道,从纯粹的编译器优化角度来看,转到对编译器的优化结果呢? 这会让代码快 , 慢 ,或一般相比,使用临时/旗帜在性能上没有变化 . --------------解决方案------------- 这将影响一个编译器的零件也与一个流图. 语法用于创建一

  • OpenGL的四渲染优化 2012-01-03

    我画四边形在OpenGL. 我的问题是,是否有任何与此额外的性能提升: // Method #1 glBegin(GL_QUADS); // Define vertices for 10 quads glEnd(); ......在这样做的每个10四边形: // Method #2 glBegin(GL_QUADS); // Define vertices for first quad glEnd(); glBegin(GL_QUADS); // Define vertices for seco

  • 编译器优化参数 2012-01-03

    比方说你有一些类的一些功能被召集这样的 myclass::render(int offset_x, int offset_y) { otherClass.render(offset_x, offset_y) } 这种模式将重复一段时间可能是通过10+类,所以我的问题是: 现代C ++编译器足够聪明认识到,无论程序存储功能参数 - 从维基百科告诉我,它似乎取决于参数的大小有所不同,但对于一个2参数的函数的寄存器很可能 - 不需要重写用新值? 如果不是我可能需要看看如何实现我自己的方法 ------

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.232 (s). 10 q(s)