zoukankan      html  css  js  c++  java
  • GTK+/DFB优化

    GTK+/DFB优化(续)

    转载时请注明出处和作者联系方式
    作者联系方式:李先静 <xianjimli at hotmail dot com>


    在前一篇GTK优化的BLOG中,我介绍我当时知道的优化方法,这段时间又有一些新的体会,写出来和大家分享吧:

    1) 固化DirectFB的配置。由于DirectFB的配置基本上都是固定的,通常没有必要使用配置文件,直接把配置固化到代码里好了,即省了配置文件的解析,又省了某些插件目录的扫描。

    2) 去掉DirectFB中不必要的插件。每个input driver都会创建一个线程,图形加速的插件很多,加载进来要浪费不少空间去容纳.data/.bss的全局数据,而且这些数据每个进程都有一份独立的拷贝,造成大量时间/空间的浪费。

    3) 去掉GTK中不必要的pixbuf loader和immodules,有些pixbuf loader和immodule永远不会用到或者很少用到,可以去掉它们,省了空间又加快起动速度。这只要修改$prefix/etc/gtk-2.0中的配置文件即可。

    4) 去掉_gdk_visual_init中的检测。这个函数比较费时,由于它的检测结果总是固定的,可以直接把结果写到代码里。对broncho说,把整个循环注释掉就行了。

    5) 预先加载常用动态库。以前我用过这个办法,却得到的相反的结论,速度反而变慢了!后来发现是因为dlopen是以LAZY方式打开的,改用NOW方式之后速度有显著提高,起动时间差不多减少一半。

    6) 尽早显示窗口。在创建窗口完成后,马上显示出来,然后再加载数据,避免让用户等得太久。由于gtk_widget_show是异步的,在show之后再调用while(gtk_events_pending())  gtk_main_iteration(),可以让窗口立即显示。

    7) 预先创建窗口。由于DirectFB只要0.2秒就能完成初始化,而GTK则至少要1秒多钟,一个比较狠的方法就是在DirectFB初始化完成时,马上创建一个窗口并显示出来,GTK真正创建窗口时直接重用这个创建好的窗口。

    8) 单窗口机制。考虑到手机应用的特殊性-窗口独占工作区。一个应用程序可以只用一个窗口,打开新窗口时,只是增加这个窗口的引用计数,并把新窗口的内容显示到上面, destroy时减少它的引用计数,并把原来的内容显示上去,引用计数为0时才真正destroy。

    GTK优化没有什么好的方法,只能从一点一滴做起,欢迎交流。

  • 相关阅读:
    前端知识 | 一个简单的登录页面包含多少前端基础知识?
    SQLserver查询作业、视图、函数、存储过程中的关键字
    SQL server 数据库备份至服务器本地磁盘和其他服务器磁盘
    Linux(centos)安装vim
    CentOS6 7 8更换阿里yum源
    centos8 最小化安装 无 ifconfig,netstat 的安装
    修改MySQL用户的host属性
    阿里云NTP服务器(国内可用的NTP服务器)
    vCenter Server Appliance(VCSA )7.0 部署指南
    Chrome离线安装包最新版
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167634.html
Copyright © 2011-2022 走看看