给位兄弟姐妹大家好:
    本人在从事一种运算量很大的码流分析软件的开发,经过一个阶段的实践以后,发现软件的效率在软件的开发中是一个很值得注意的问题。尤其在牵扯到大量运算和占用大量资源的场合,有时候它甚至关系到软件产品的存亡。为了提高自己的软件开发水平,也为了结识更多的朋友,今天发了这个帖子,希望能够引起大家的注意。
    小弟在这里有如下几个问题:
    1.在牵扯到大量运算和占用大量资源的场合,我们一般采用什么方法来提高软件的运行效率?需要注意一些什么问题?
    2.在传统的图像处理和码流分析领域,有没有一套成熟的或者约定俗成的高效率编码方法?
    3.使用嵌套汇编的方式是否可以提高软件的运行效率?有相关的资料么?
    4.游戏编程中的一些做法是否可以作为借鉴?如果是,有哪些方法?    回帖有分!
群:14308063开发俱乐部,欢迎软件开发人才和硬件开发高手加入。尤其是通信方面的开发人员和熟悉底层开发、游戏开发、逆向工程的程序员,并且欢迎具有较高理论水平的朋友。

解决方案 »

  1.   

    抛砖引玉版.
    (楼主你得给我分,还得多给)
    我不知道,但所见所闻一般都是各村有各村的高招.各村的法宝我就说不出了.但也有一些总体性的规律.我来抛一二:
    1:尽量的Const.2:结构化数据分组.3:功能函数模组化.4:整体步局来说那就是链接化.
    对我来说,我村的高招是:
    送死你去,黑锅你背.
      

  2.   

    多一点细节:1) How big is your data?
    2) What type are those data?
    3) What kind of computation?
    4) What is your current status?
    5) What is your goal?
      

  3.   

    我们做图像处理比较多,提高程序运行效率主要还是从改进算法入手,一个优秀的算法胜过在编译编码方面做优化多达几个数量级
    其次是图像处理需要大量内存,在使用前应该进行总体规划,最好不要随意分配释放,建议采用内存池技术
    注意提取优化“半常量”,即计算一次的结果可能需要多次使用的地方,避免对相同的数据进行多次重复的计算。
    在语法中充分发挥const的作用,可以优化速度
    研究一下单件(Singleton),并充分利用供参考
      

  4.   

    1.算法上多动脑子
    2.用C的而不是C++,会快一点。
    3.编译器很重要,如果是WINDOWS上到是问题不大,VC6和之后版本就行了。
    4.即使会用汇编,99%的人用嵌套汇编反而会更慢,除非用SIMD(MMX/SSE)来优化图象算法。
    5.阅读INTEL关于CPU的软件优化的文章,在C语言层次上进行优化。