在嵌入式Linux系统中应用的GTK+和X分析( 四 )


在ARM7的系统上,由于没有浮点运算FPU,所以GTK 中的浮点运算部分最好是去掉,否则会大大影响性能 。GTK 使用到的浮点变量只分布在少数的几个窗口中,并且去掉它们会带来3%到12%的性能提高 。

高像素的应用会导致速度较慢,这大多是由于GTK 与X中对高像素的效率低下的处理有关 。如涉及到的XPM,XPM (X pixmap)格式是被设计来做到较好的兼容性,而不是更加快速 。X系统是一个像素一个像素地画到server的pixmap的 。GTK 的像素处理也很低效,它是使用fgetc()来读取XPM文件的,这就会带来大量的上下文切换开销 。

X窗口系统的结构也导致了像素的加载变慢 。GTK 客户端需要加载,分析XPM文件,将像素值通过传输协议发送给server,然后server才将像素值放入framebuffer 。如果客户端直接将数据写到framebuffer server那将会有效很多 。
处理的GTK 像素的办法就是,写一个临时的中间过程,取得render过的像素,使用这个原始数据来替换XPM数据,这个原始数据就可以直接强制写到X server上 。从结构上来看,这虽然不是一个很好的处理办法,但在效率上却要比使用XPM要快上80% 。

总结
【在嵌入式Linux系统中应用的GTK 和X分析】现在的消费电子大多需要一个美观,实用的图形界面系统GUI 。在嵌入系统linux下,有很多种GUI可供选择 。使用开放代码的GUI的优点就是你可以将其裁剪得满足你的各种各样的特殊需求 。GTK 就是一个很好的选择,而X-window系统提供了一个稳定可靠的client/server模型 。当你得到一个只有2.9M大小的定制过的GUI时,对大多数的嵌入系统还是很有参考价值的 。

推荐阅读