[App Sharing] 星火UOS包补丁:大幅提升深度商店软件包安装速度
Tofloor
poster avatar
神末shenmo
deepin
Spark-App
Q&A Team
2023-04-19 07:36
Author

deepin-app-store-tool这个工具是用来给UOS标准的软件包创建链接的,有这个工具,安装UOS标准包的时候才会正确创建桌面图标

然而,这个工具运行的效率很低,速度很慢,个人推测可能的原因是它会去读/opt/apps/应用名/info的信息来识别应用名等信息。

从Info信息可以看出,当初的统信很有想法,想通过info信息的读取来识别应用的appid,权限等信息,可能会提供给安全管家之类的应用去读取。这些特性恐怕永远都不会被实现了.....

然而,deepin-app-store-tool还会去读这些信息,而唯一有用的信息是info文件的appid项目,而这个项目和软件包名,软件包文件夹名是一模一样的,根本没有必要。这导致它运行的速度很缓慢。大家直观的感受就是,安装UOS标准的软件包会比安装原版的软件包要慢几秒钟,而这个现象在机械硬盘上会更加恐怖,甚至运行deepin-app-store-tool的时间会长达半分钟,甚至远超应用本体的安装时间

为了解决这一问题,我把deepin-app-store-tool的源码喂给了GPT4,并让他用bash重写。重写后,我删去了读info文件的逻辑,直接有文件夹就去尝试处理

这便是 spark-dstore-patch——因为换成了脚本语言而适配了全架构而不是受限于在对应架构编译,因为砍掉了读info的逻辑,尽管变成了脚本语言,运行速度反而大幅提升


性能对比

安装补丁前

图片.png

安装补丁后

图片.png

可以看出速度提升了一倍以上,这还是在我的三星970evo上,如果是机械硬盘,提升会非常非常明显

大家有兴趣可以用这个命令也测试下在自己机器上安装补丁后的提升

补丁下载地址:

https://gitee.com/spark-community-works-collections/spark-dstore-patch/releases/latest

Reply Favorite View the author
All Replies
阿尼樱奈奈
deepin
2023-04-19 08:42
#1

祝贺一下,神末大人辛苦了,记得多休息啊。

(顺便一提:我竟然看到了《300英雄》里的折纸)

Reply View the author
璀璨星空
deepin
2023-04-19 09:08
#2

like

Reply View the author
神末shenmo
deepin
Spark-App
Q&A Team
2023-04-19 09:16
#3

注意:这个工具没有实现原来工具的所有功能,如果出现异常,这里是恢复原版的方法

sudo apt remove spark-dstore-patch

sudo apt install deepin-app-store --reinstall

Reply View the author
ThinkYoung
deepin
2023-04-19 09:30
#4

kissing_heart 霸气!

Reply View the author
wcs4221
deepin
2023-04-19 13:21
#5

支持一下

Reply View the author
jjcui8595
deepin
2023-04-19 14:11
#6

大赞like

Reply View the author
青稚
deepin
2023-04-19 15:03
#7
神末shenmo

注意:这个工具没有实现原来工具的所有功能,如果出现异常,这里是恢复原版的方法

sudo apt remove spark-dstore-patch

sudo apt install deepin-app-store --reinstall

辛苦了,加油^0^~。

Reply View the author
辉夜
deepin
2023-04-19 15:39
#8

要不给uos反馈下,惠及更多人joy

Reply View the author
black_white_bear
deepin
2023-04-19 16:12
#9

卧槽!GPT引领世界,淘汰低端程序员

Reply View the author
明天会更好
deepin
2023-04-19 16:19
#10

sx-ljm@sx-ljm-PC:~/Desktop$ time sudo deepin-app-store-tool
请输入密码:
验证成功
----------------Running Spark DStore Patch----------------
----------------Finished----------------

real 0m8.024s
user 0m0.019s
sys 0m0.003s
sx-ljm@sx-ljm-PC:~/Desktop$ time sudo deepin-app-store-tool
----------------Running Spark DStore Patch----------------
----------------Finished----------------

real 0m1.265s
user 0m0.006s
sys 0m0.005s
sx-ljm@sx-ljm-PC:~/Desktop$

Reply View the author
zccrs
deepin
2023-04-19 17:56
#11

66666666666

Reply View the author
浪云
deepin
2023-04-19 18:05
#12

然后,弄完这个,能安装uos-recovery_6.0.15-1_amd64.deb 吗?

Reply View the author
神末shenmo
deepin
Spark-App
Q&A Team
2023-04-19 18:42
#13
浪云

然后,弄完这个,能安装uos-recovery_6.0.15-1_amd64.deb 吗?

这俩没关系...

Reply View the author
忘记、过去
deepin
2023-04-19 19:45
#14

咳咳,去掉 info 文件读取操作确实更快,但是“是个文件夹就创建软链接”,总会出现问题的。毕竟官方商店上架打包要求里是对 info 文件有要求的,比如 appid 和文件夹名称对应,也可以算是一种包格式校验。

另外有一点...... info 文件里还是有一个 autostart 字段有用的,通过这个字段值可以控制应用是否需要默认开机自启,判断是否需要创建软链接到 /etc/xdg/autostart 文件夹里面。不过别的字段权限控制目前是真的没用上了......

总的来说,deepin-app-store-tool 的读取 info 文件操作可以算是一种校验(毕竟打包不规范的情况又不是不存在)。随意创建软链接的话,对于没有进入开发者模式的 UOS 来说,出了问题就很难办了。

当然,对于 Deepin 来说,没有开发者模式的限制,选择运行更快的脚本还是更“安全”的处理方式,就由用户自己决定了。

生命不息,折腾不止.jpg

Reply View the author
神末shenmo
deepin
Spark-App
Q&A Team
2023-04-19 20:19
#15
忘记、过去

咳咳,去掉 info 文件读取操作确实更快,但是“是个文件夹就创建软链接”,总会出现问题的。毕竟官方商店上架打包要求里是对 info 文件有要求的,比如 appid 和文件夹名称对应,也可以算是一种包格式校验。

另外有一点...... info 文件里还是有一个 autostart 字段有用的,通过这个字段值可以控制应用是否需要默认开机自启,判断是否需要创建软链接到 /etc/xdg/autostart 文件夹里面。不过别的字段权限控制目前是真的没用上了......

总的来说,deepin-app-store-tool 的读取 info 文件操作可以算是一种校验(毕竟打包不规范的情况又不是不存在)。随意创建软链接的话,对于没有进入开发者模式的 UOS 来说,出了问题就很难办了。

当然,对于 Deepin 来说,没有开发者模式的限制,选择运行更快的脚本还是更“安全”的处理方式,就由用户自己决定了。

生命不息,折腾不止.jpg

想要安装这个包必须开开发者模式咯

至于autostart,我个人很讨厌安装之后自己启动的图形应用,所以砍了

Reply View the author
神末shenmo
deepin
Spark-App
Q&A Team
2023-04-19 20:23
#16
忘记、过去

咳咳,去掉 info 文件读取操作确实更快,但是“是个文件夹就创建软链接”,总会出现问题的。毕竟官方商店上架打包要求里是对 info 文件有要求的,比如 appid 和文件夹名称对应,也可以算是一种包格式校验。

另外有一点...... info 文件里还是有一个 autostart 字段有用的,通过这个字段值可以控制应用是否需要默认开机自启,判断是否需要创建软链接到 /etc/xdg/autostart 文件夹里面。不过别的字段权限控制目前是真的没用上了......

总的来说,deepin-app-store-tool 的读取 info 文件操作可以算是一种校验(毕竟打包不规范的情况又不是不存在)。随意创建软链接的话,对于没有进入开发者模式的 UOS 来说,出了问题就很难办了。

当然,对于 Deepin 来说,没有开发者模式的限制,选择运行更快的脚本还是更“安全”的处理方式,就由用户自己决定了。

生命不息,折腾不止.jpg

不考虑autostart字段的话,验证一个完全没有用处的文件来确保"打包规范"其实是完全没有意义的.......

Reply View the author
忘记、过去
deepin
2023-04-19 20:29
#17
神末shenmo

不考虑autostart字段的话,验证一个完全没有用处的文件来确保"打包规范"其实是完全没有意义的.......

毕竟还是有用的 joy

所以说问就是没啥改的,想折腾自己玩儿就行,有问题自己解决嘛

Reply View the author
狂奔的野猪
deepin
2023-04-19 22:24
#18
It has been deleted!
longlong
deepin
Community Developer
2023-04-20 01:49
#19

感谢反馈,确定是这方面逻辑有问题,已经着手优化和解决

Reply View the author