系统性能优化思路

来源:互联网 发布:灰色按钮克星 源码 编辑:程序博客网 时间:2024/04/30 04:32

基础性工作:

1、  在编译动态库时,加上—version-map选项,控制导出函数。

2、  在编译动态库时,加上-fPIC选项,为以后使用Prelink优化做准备。

3、  将编译的动态库,全部放到一个指定目录下。

4、  将编译后的执行文件和动态库的符号,全部输出到指定目录,为以后分析做准备。

5、  使用Prelink,优化编译完成的执行文件和动态库。

特定目标优化:

1、  开机性能优化

    * 了解当前系统启动时间,确定目标系统启动时间。
    * 对开机过程的bash脚本进行优化,去除冗余,提高脚本自身的执行速度。
    * 对开机过程中启动的进程所完成的任务要有所了解,对于一些不必要的进程要从启动过程中删掉。
    * 缕清启动过程中进程之间的依赖关系,调整进程的启动次序,充分利用CPU资源。
    * 了解启动过程中,各个进程所花费的时间,针对用时比较长的进程,考虑代码优化。

2、  进程启动优化

    * 整理出由于无法满足进程响应时间,而将该进程改为守护进程的清单,对于这类进程努力提高其启动速度,将其从守护进程中删除。
    * 整理出目前不满足用户输入响应时间要求的进程清单。
    * 确认Prelink的方法生效。
    * 优化动态库的搜索路径。
    * 确认进程启动过程中,动态库加载的时间与用户代码响应时间。如果是动态库加载时间过长,考虑进程的动态库优化;如果是用户代码响应时间过长,考虑代码优化。
    * 关于进程加载动态库的优化,可以考虑去除进程中不必要的动态库,动态库的合并与拆分。
    * 对于GTK开发的应用来讲,可以采用调度的方法来节省掉其加载动态库的时间。

3、  系统守护进程优化

    * 目标:减少守护进程的数量。
    * 弄清当前系统内都有哪些守护进程及其原因。
    * 由于进程启动时间达不到要求的守护进程,采用上面的方法进行优化。
    * 将一些守护进程侦听事件部分,合并为一个进程,从而减少守护进程的数量。

4、  进程优化

    * 整理应用程序中,都有哪些操作性能比较差,需要优化。
    * 对于这些操作,分析其都完成了哪些操作,其性能瓶颈在什么地方,从软件逻辑上对其进行优化。
    * 使用oprofile,查找底层热点函数,对于底层库函数实行代码优化。
    * 了解系统中GTK的整体构架,查找带UI绘图的性能瓶颈,考虑采用GPU的硬加速的功能。
    * 对于性能要求很高的多媒体应用来讲,先以逻辑优化为主,后期重点放在代码优化、硬加速方面。

5、  系统耗电量

    * 系统耗电量的优化主要包括两部分:关闭不必要模块,降低CPU的频率。
    * 确定系统大部分时间所处的状态,要争取其CPU处于较低的频率。
    * 在确认这些状态之后,整理出在这些状态应用都做了哪些事情,对其进行逻辑优化。
    * 使用oprofile,检测这些状态下热点函数情况,对其进行代码优化。

原创粉丝点击