[Control Center] 配置文件反复刷写
Tofloor
poster avatar
fslong
deepin beta test group
2024-05-26 07:42
Author

众所周知,dde还是比较吃硬盘io的,如果是机械硬盘,那体验还是很难受的。

一个比较重要的原因就是deepin的配置是实时记录的,我们只要动了设置,不管是否配置文件需要更改,都会刷写配置文件。

而这些配置文件都是很小的文件,特别吃4k读写,再叠加安装器分区时候不做4k对齐的bug,有些人装完系统后体验上卡的离谱。

尤其是我们现在还在大力推玲珑,那对磁盘IO要求更高了,别说机械盘了,比较差的sata都吃不动,希望官方对配置的应用时机,再斟酌下做一些优化,提升deepin的体验。

下面是我目前看到的一些可以优化的机制:

一、配置是否有变化

这是桌面的配置,只要你在控制中心点显示里面的屏幕,随便动两下,他就刷写一下,实际上我观察这个文件刷写前后并没有任何区别。

可以在写入磁盘之前做个判断,看配置是否有变化,有变化才写入磁盘,没变化就不写了。
image.png

二、窗口发生变化时记录配置文件

我们的dde很好用对吧,但他所有的窗口大小记录是实时的,只要你拖拽窗口下面的配置文件就会写一遍,甚至最大化和窗口切换也会刷写一遍然后没有任何变化。

image.png

打开程序的时候在内存中,反正没关闭,实时记录窗口大小也就只能防止程序非正常结束,但是程序都非正常结束了,记录的配置有没有可能也是有问题的?所以也没意义。

qt可以设置点关闭的时候做啥事,用户点了关闭就把配置记录一下,能大幅减少配置文件的刷写,省出来一些磁盘的IO。

三、用deepin-editor打开deepin-editor的配置文件

用deepin-editor打开deepin-editor的那一瞬间就提醒重新载入了,说明程序启动时候就实时刷写了,能否跟vscode的机制一样,改为文件有修改后延时保存或者延时刷写?

image.png

image.png

image.png

image.png

可以看到,vscode提供的保存机制如果用到配置文件的刷写上还是蛮舒服的,易用性不会下降,但性能明显会有提升。

其实我们的配置文件都可以用这种延时或者关闭时候刷写的机制,而不是用户一操作立马就刷写。

本身用户操作的时候cpu、磁盘IO占用就比较高,同时再刷写配置文件,那不就是病上加病。

四、KDE和XFCE的逻辑

这两个桌面肯定同学们很多都用过,有个很有意思的就是我们设置完得点应用才记录配置文件,所以我们平时在点这两个桌面的时候感觉很轻,很舒服。

而我们在dde上操作的时候,都要刷写下配置文件,用户的小操作,比如没事点点点,拖拽窗口等等不良习惯很普遍,这样子4K读写那就很容易吃满,然后大家就开始骂dde了。


综上所述,还是希望官方优化下有关逻辑,磁盘性能不好的装了deepin的体验真的还是比较难受的。

Reply Favorite View the author
All Replies
AMZ
deepin
2024-05-26 07:59
#1

附议

Reply View the author
f@deepin
deepin
2024-05-26 08:02
#2

agree

Reply View the author
阿尼樱奈奈
Moderator
2024-05-26 09:09
#3

确实该优化了

Reply View the author
chmod700
deepin
2024-05-26 10:06
#4
The user is banned, and the content is hidden.
璀璨星空
deepin
2024-05-26 13:29
#5

猫王就是屌,前有内核安装器文件系统今有配置文件blush

Reply View the author
核桃
deepin
2024-05-26 14:13
#6

这个优化的确很实在,延时刷新可以减缓一下IO压力

Reply View the author
fslong
deepin beta test group
2024-05-26 14:49
#7
chmod700
The user is banned, and the content is hidden.

有没有可能gnome是先响应用户操作,完事之后再记录或者直接是不同线程。

而deepin我怀疑就一个线程,还是先记录再响应操作,操作的时候就会先卡一下完了再响应用户的具体操作,我一直发现跟手性不强,没准就因为这。

Reply View the author
Merlin
Super Moderator
Product Manager
2024-05-27 10:39
#8

转给研发部门评估。

Reply View the author
Merlin
Super Moderator
Product Manager
2024-05-27 10:44
#9

我们内部在推进所有配置项用 DConfig 来实现,这样就可以统一控制了。不过有一些历史遗留的原因,短时间内可能无法做到,但长期看这是我们的目标。

Reply View the author
fslong
deepin beta test group
2024-05-27 11:20
#10
Merlin

我们内部在推进所有配置项用 DConfig 来实现,这样就可以统一控制了。不过有一些历史遗留的原因,短时间内可能无法做到,但长期看这是我们的目标。

对,就是历史遗留的,这个从15好像就有的,以前功能还没那么多,写入量可能小点,影响不大。

到现在影响就逐渐增大了,希望优化下,减轻负担。

Reply View the author