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优化没有什么好的方法,只能从一点一滴做起,欢迎交流。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值