AWTK 和 QT 资源占用不完全对比

server/2024/9/18 12:46:09/ 标签: AWTK

因为没有开发两个完全一样的应用程序,对比的结果并不是很准确,仅供参考。

对比的程序为:

  • AWTK demoui 演示了 AWTK 常用功能。

  • QT QDesktop 演示了 QT 常用功能。

运行平台为: i.MX6ULL Linux

1. 可以执行文件大小

AWTK_12">1.1 AWTK

带调试信息版本

-rwxr-xr-x 1 lixianjing lixianjing 2.3M May  3 08:29 demoui

不带调试信息版本

-rwxr-xr-x 1 lixianjing lixianjing 1.6M May  3 08:29 demoui

依赖的库文件(只依赖少数几个系统库)

        linux-vdso.so.1 (0x7ec5c000)libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x76e41000)libpthread.so.0 => /lib/libpthread.so.0 (0x76e19000)librt.so.1 => /lib/librt.so.1 (0x76e02000)libm.so.6 => /lib/libm.so.6 (0x76d84000)libdl.so.2 => /lib/libdl.so.2 (0x76d71000)libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x76d44000)libc.so.6 => /lib/libc.so.6 (0x76c0b000)/lib/ld-linux-armhf.so.3 (0x76f93000)

1.2 QT

可以执行文件

-rwxr-xr-x 1 root root 1.6M Aug 14  2019 QDesktop

依赖的库

        linux-vdso.so.1 (0x7efe5000)libQt5Widgets.so.5 => /usr/lib/libQt5Widgets.so.5 (0x769d4000)libQt5Multimedia.so.5 => /usr/lib/libQt5Multimedia.so.5 (0x768e1000)libQt5Qml.so.5 => /usr/lib/libQt5Qml.so.5 (0x764eb000)libQt5Network.so.5 => /usr/lib/libQt5Network.so.5 (0x76354000)libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x75db4000)libpthread.so.0 => /lib/libpthread.so.0 (0x75d8c000)libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x75c4b000)libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x75c1e000)libc.so.6 => /lib/libc.so.6 (0x75ae5000)libQt5Gui.so.5 => /usr/lib/libQt5Gui.so.5 (0x755d8000)libm.so.6 => /lib/libm.so.6 (0x7555a000)libpulse.so.0 => /usr/lib/libpulse.so.0 (0x75505000)libdl.so.2 => /lib/libdl.so.2 (0x754f2000)libz.so.1 => /lib/libz.so.1 (0x754d0000)libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x753d3000)/lib/ld-linux-armhf.so.3 (0x76f08000)libGLESv2.so.2 => /usr/lib/libGLESv2.so.2 (0x753bc000)libpng16.so.16 => /usr/lib/libpng16.so.16 (0x75385000)libpulsecommon-8.0.so => /usr/lib/pulseaudio/libpulsecommon-8.0.so (0x7530a000)libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0x752f9000)libSM.so.6 => /usr/lib/libSM.so.6 (0x752e2000)libICE.so.6 => /usr/lib/libICE.so.6 (0x752bd000)libXtst.so.6 => /usr/lib/libXtst.so.6 (0x752a9000)libXi.so.6 => /usr/lib/libXi.so.6 (0x7528d000)libXext.so.6 => /usr/lib/libXext.so.6 (0x7526f000)libX11.so.6 => /usr/lib/libX11.so.6 (0x75155000)libxcb.so.1 => /usr/lib/libxcb.so.1 (0x7512f000)libXau.so.6 => /usr/lib/libXau.so.6 (0x7511d000)libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x75109000)libjson-c.so.2 => /usr/lib/libjson-c.so.2 (0x750f1000)libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0x7507b000)libFLAC.so.8 => /usr/lib/libFLAC.so.8 (0x75015000)libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x74f84000)libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x74f4e000)libogg.so.0 => /usr/lib/libogg.so.0 (0x74f3a000)libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x74eec000)libcap.so.2 => /lib/libcap.so.2 (0x74ed9000)librt.so.1 => /lib/librt.so.1 (0x74ec2000)libpcre.so.1 => /usr/lib/libpcre.so.1 (0x74e74000)libdrm.so.2 => /usr/lib/libdrm.so.2 (0x74e59000)libglapi.so.0 => /usr/lib/libglapi.so.0 (0x74e11000)

依赖的库比较多,只是看几个基本库

-rwxr-xr-x 1 root root 5.0M Aug 14  2019 /usr/lib/libQt5Gui.so.5.12.9
-rwxr-xr-x 1 root root 5.1M Aug 14  2019 /usr/lib/libQt5Widgets.so.5.12.9
-rwxr-xr-x 1 root root 5.6M Aug 14  2019 /usr/lib/libQt5Core.so.5.12.9

结论:QT 的库和可执行文件比较大,是 AWTK 的 10 倍以上。

2. 内存占用

AWTK_107">2.1 AWTK

VmHWM:      7820 kB
VmRSS:      5632 kB
VmData:    17960 kB
VmStk:       136 kB
VmExe:      1568 kB
VmLib:      3144 kB
VmPTE:        52 kB
Threads:        3

2.2 QT

VmHWM:     93236 kB
VmRSS:     92236 kB
VmData:   187964 kB
VmStk:       136 kB
VmExe:      1448 kB
VmLib:     56492 kB
VmPTE:       210 kB
Threads:        18

结论:QT 的内存占用是 AWTK 的 10 倍以上。

3.启动时间

出现第一个界面的时间。

  • AWTK: 无法感知,小于 0.5 秒
  • QT: 6 秒

结论:QT 的启动时间是 AWTK 的 10 倍以上。


http://www.ppmy.cn/server/38255.html

相关文章

Navigation常见场景解决方案

路由跳转场景 页面跳转是路由最常用的能力,Navigation通过NavPathStack提供了诸多方法,下文以pushDestination方法为例,介绍Navigation的路由跳转相关能力。 页面间跳转 NavPathStack提供了路由管理的能力,通过NavPathStack进行…

vue3封装获取当前年、月、季度、周

1.新建在utils文件夹中handleTime.js文件用于封装方法 // 计算当前周的开始和结束时间 export function calcNowWeek() {let startWeek moment().weekday(0).format(YYYY-MM-DD);startWeek moment(startWeek).subtract(2, days).format(YYYY-MM-DD)let endWeek moment().we…

kafka系列一:初识kafka

概述 kafka是由scala语言编写的一个分布式且具备高可用、高性能、可持久化、可水平扩展、支持流数据处理等众多特性的消息系统,常活跃于大数据生态中,而且大名鼎鼎的rocketmq就是参考了kafka的设计原理。 目前越来越多的开源分布式中间件都支持与kafka集…

第十三届蓝桥杯决赛(国赛)真题 Java B 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 重合次数试题 B: 数数试题 C: 左移右移试题 D: 窗口试题 E: 迷宫试题 F : \mathrm{F}: F: 小球称重试题 G: 背包与魔法试题 H: 修路试题 I: 围栏试题J: 好数 发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂&…

linux Nginx安装与启动

一、先到官网下载Nginx 官网地址: http://nginx.org/en/download.html 我下载的是nginx-1.20.2 二、下载好的文件上传到服务器,然后解压 1、上传到指定的服务器地址,我这里是公司服务器,目录都是定义好的,自己玩建…

密码口令初步

一,弱口令(ctfhub) 1.打开环境,发送到bp的instruder板块,一般id默认为admin,也可以用bp找出来,这里就是 2.先clear ,再把password等号后面添加进来(add)&am…

Android 13 aosp 默认关闭SELinux

通过adb修改 adb root adb shell setenforce 0 // 开SELinux,设置成模式permissive adb shell setenforce 1 // 关SELinux,设置成模式enforce adb shell getenforce // 获取当前SELinux状态源码修改 Android_source/system/core/init/selinu…

90%前端就职小厂,你却说React是国内主流,做人不可以这么扯淡。

有人在自媒体上大放厥词,说赶紧放弃vue,拥抱react吧,vue是过家家的,大厂没有用的,你去问问有多人前端在大厂,做人不可以扯淡。但凡你去调查研究,你就发现大厂很少用vue,同样也很少用…

【Git】Git学习-18:分支管理和工作流模型

学习视频链接:【GeekHour】一小时Git教程_哔哩哔哩_bilibili​编辑https://www.bilibili.com/video/BV1HM411377j/?vd_source95dda35ac10d1ae6785cc7006f365780 GitFlow模型 git tag :版本号 GitHubFlow模型 总结

POWERBI==官网教程

地址 COVID-19 tracking sample for US state and local governments - Power BI | Microsoft Learn 已经非常全面了

分布式与一致性协议之ZAB协议(一)

ZAB协议 概述 很多人应该都使用过ZooKeeper, 它是一个开源的分布式协调服务,比如你可以用它进行配置管理、名字服务等。在ZooKeeper中,数据是以节点的形式存储的。如果你要用ZooKeeper做配置管理,那么就需要在里面创建指定配置&…

Vue3 查看真实请求地址

上回说到Vue2查看真实请求地址,那么Vue3该如何查看呢? 传送门: Vue2 查看真实请求地址 1. bypass函数 使用bypass函数获取代理结果,设置响应头(请求头设置未生效,也可以在响应头上看)。 2. …

将unity中相机位置保存为json 文件或者 发送给后端

将unity中相机位置保存保存到服务器 ///相机的位置public Transform cameraTransform;void Start(){// SaveCameraPosition("sd");// ("{\"name\":\"sd\",\"position\":\"(0.00, 5.00, -12.00)\",\"rotation\&qu…

C#面:C# 是否可以对内存直接进行操作

在C#中,可以通过使用指针来对内存进行直接操作。 使用 unsafe 关键字来支持指针操作,并且需要在项目属性中启用选项:允许不安全代码。使用指针可以绕过 C# 的类型安全检查,因此需要谨慎使用,并且只有在必要的情况下才…

C++怎样产生随机数

C怎样产生随机数? 这里要用到的是 rand() 函数和 srand() 函数 rand() 会返回一随机数值, 范围在 0 至 RAND_MAX ,RAND_MAX 定义在 stdlib.h, 其值根据系统配置设定 例如&#xff1a; #include<stdio.h> #include<stdlib.h> int main() {for(int i0;i<10;i)…

读书笔记——《高质量C++/C编程指南》(2)

目录 前言 命名规则 共性规则 简单的Windows应用程序命名规则 表达式和基本语句 运算符优先级 复合表达式 if语句 布尔变量与零值比较 整型变量与零值比较 浮点变量与零值比较 指针变量与零值比较 对if 语句的补充说明 循环语句的效率 for 语句的循环控制变量 s…

LeetCode 每日一题 ---- 【1463.摘樱桃 II】

LeetCode 每日一题 ---- 【1463.摘樱桃 II】 1463.摘樱桃II方法&#xff1a;动态规划&#xff08;递推&#xff09; 1463.摘樱桃II 方法&#xff1a;动态规划&#xff08;递推&#xff09; 昨天是摘樱桃I&#xff0c;今天是II&#xff0c;与昨天的区别主要在于&#xff0c;今…

uniapp+vue基于移动端的药品进销存系统r275i

最后我们通过需求分析、测试调整&#xff0c;与药品进销存管理系统管理系统的实际需求相结合&#xff0c;设计实现了药品进销存管理系统管理系统。 系统功能需求包含业务需求、功能需求用户需求&#xff0c;系统功能需求分析是在了解用户习惯、开发人员技术和实力等各个因素的前…

写一个函数返回参数二进制中1的个数--四种方法及原理解释

虽然本方法是java写的&#xff0c;但是其原理适用于大部分语言 方法一&#xff1a;通过取模%运算取出每一位比特位数值&#xff0c;再进行判断&#xff08;该方法不可判断负数&#xff09; 原理&#xff1a; 通过取模num % 2 1 取出该数的每一个二进制位数&#xff0c;再判…

Android OpenMAX(四)OMX Core

假设我们已经写好了所有的OMX组件,有vdec、venc、adec、aenc,接下来问题来了,我们应该如何管理这些组件呢(创建、销毁)?这一篇文章我们向上一层学习OMX Core提供的标准API。 OMX Core代码位于 OMX_Core.h OMX Core在OpenMAX IL架构中的位置位于IL Client与实际的OMX组件之…