GuiLite 1.1 发布:“大力”优化底层,CPU占用率低至:0% ~ 3%

来源: 投稿
作者: idea4good
2018-11-23

UI软件,往往对系统资源(CPU,内存)的要求比较高。系统的卡顿,也往往出现在大面积的界面刷新的时候;因此超高的UI绘制效率,能帮助开发者在系统资源有限(如:嵌入式设备,IOT设备)的条件下,依然拥有夸张的UI表现力。

虽然GPU的使用,一定程度上能够帮助CPU分担绘制压力。但开发者认为:

  1. 在一些2D应用场景,GPU所能发挥的优势并不明显;

  2. 大部分嵌入式/IOT设备不具备GPU资源;

因此,开发者致力于优化底层代码,层层压榨每一行代码的效率,大力砍伐不必要的软件流程。俗话说:“大力出奇迹”,在开发群的集体验证下,测试程序:Host Monitor对CPU的使用率降低至惊人的“0% ~ 3%”!

我们的测试环境如下:

  • 硬件环境:X86 i5, Raspberry Pi 2

  • 软件环境:Ubuntu, raspbian

  • 显示模式:framebuffer直接映射

俗话说的好:“是骡子是马,拉出来遛遛”,请大家更新代码,并将您的运行结果反馈给我们,让我们共同改善/改进软件的运行效率,谢谢!

展开阅读全文
14 收藏
分享
加载中
精彩评论
😊
2018-11-23 10:29
3
举报
看起来是在2d framebuffer上自己实现的绘制, 能不能说说用到了哪些各平台的底层图形接口?
2018-11-23 11:42
2
举报
果然,大力出奇迹啊~~~
2018-11-23 21:43
1
举报
能过360不能?
2018-11-23 11:05
1
举报
最新评论 (15)

引用来自“麦壳饼”的评论

没图片吗?
有的。
代码库里面有完整的介绍图片及视频
2018-11-26 10:43
0
回复
举报
没图片吗?
2018-11-26 08:47
0
回复
举报
果然,大力出奇迹啊~~~
2018-11-23 21:43
1
回复
举报

引用来自“SamXIAO”的评论

50MHz的M0或100MHz的M3/M4能跑么?

引用来自“idea4good”的评论

可以在100MHZ的CPU,64M内存的环境上跑。不过CPU使用率可能会到60%左右。

如果你有实测环境的话,特别期待你的数据反馈

引用来自“SamXIAO”的评论

M0,M3是MCU,M0一般内存在64KB以下,M3内存最多可能就几MB,一般4K~256KB
那就不适合跑host monitir这种复杂实例程序了。

需要另外开发一个适合单片机运行的实例程序。

GuiLite本身对资源要求很低,主要消耗,还是体现在应用程序上
2018-11-23 20:45
0
回复
举报

引用来自“SamXIAO”的评论

50MHz的M0或100MHz的M3/M4能跑么?

引用来自“idea4good”的评论

可以在100MHZ的CPU,64M内存的环境上跑。不过CPU使用率可能会到60%左右。

如果你有实测环境的话,特别期待你的数据反馈
M0,M3是MCU,M0一般内存在64KB以下,M3内存最多可能就几MB,一般4K~256KB
2018-11-23 20:10
0
回复
举报

引用来自“SamXIAO”的评论

50MHz的M0或100MHz的M3/M4能跑么?
可以在100MHZ的CPU,64M内存的环境上跑。不过CPU使用率可能会到60%左右。

如果你有实测环境的话,特别期待你的数据反馈
2018-11-23 18:17
0
回复
举报

引用来自“dwingo”的评论

看起来是在2d framebuffer上自己实现的绘制, 能不能说说用到了哪些各平台的底层图形接口?

引用来自“idea4good”的评论

Linux的framebuffer方式,不依赖任何第三方的底层图形接口。
iOS,Mac,Android,windows下也不依赖图形接口,只需要将guilite内部显存搬移到系统窗口即可

引用来自“dwingo”的评论

也就是说还需要自己写所在平台的代码去适配才能显示出来? 感觉像写驱动一样.
非常赞同你的说法。只是操作起来,不会像写驱动那么吓人。
各个平台的适配已经作好了(核心代码都在100行以内);而且都是基本的应用api,读起来,没有压力
2018-11-23 12:23
0
回复
举报

引用来自“dwingo”的评论

看起来是在2d framebuffer上自己实现的绘制, 能不能说说用到了哪些各平台的底层图形接口?

引用来自“idea4good”的评论

Linux的framebuffer方式,不依赖任何第三方的底层图形接口。
iOS,Mac,Android,windows下也不依赖图形接口,只需要将guilite内部显存搬移到系统窗口即可
也就是说还需要自己写所在平台的代码去适配才能显示出来? 感觉像写驱动一样.
2018-11-23 12:07
0
回复
举报

引用来自“ixiangjin”的评论

能过360不能?

引用来自“idea4good”的评论

过360是什么意思?

引用来自“司徒永超”的评论

估计是说能通过 360 的检测,不会被报毒。
哦,代码都是文本文件,自己编译出来的exe,360应该不会报警吧
2018-11-23 12:00
0
回复
举报

引用来自“dwingo”的评论

看起来是在2d framebuffer上自己实现的绘制, 能不能说说用到了哪些各平台的底层图形接口?
Linux的framebuffer方式,不依赖任何第三方的底层图形接口。
iOS,Mac,Android,windows下也不依赖图形接口,只需要将guilite内部显存搬移到系统窗口即可
2018-11-23 11:59
0
回复
举报
更多评论
16 评论
14 收藏
分享
返回顶部
顶部