官方看到会有所动作的。
青稚
2023-04-28 23:47 deepin
Reply Like 0 View the author
longlong
2023-04-28 23:52 deepin
Developer
fslong:
感谢楼主,在楼主的启发下,我的v23改成了intel_cpufreq,真是舒服。
另外,关闭intel_pstate之后,默认会启用ondermand的调度,这个目前测试比较平衡舒服。
但如果你在控制中心动了电源管理,切换到平衡或者高性能,调度又会变成performance,立马开始发烫了,重启才会好。
只关闭intel_pstate:
切换到平衡模式:
切换到高性能模式:
这个问题我们已经注意到,在23版本中我们会提供一个用户自己管理电源策略的功能,由用户修改电源策略,dde并不介入
Reply Like 1 View the author
jiutian123
2023-04-29 22:54 deepin
longlong:
这个问题我们已经注意到,在23版本中我们会提供一个用户自己管理电源策略的功能,由用户修改电源策略,dde并不介入
加油
Reply Like 0 View the author
catubibu
2023-05-18 05:42 deepin
开卷有益,来论坛每天发现一两个坑,填坑不亦乐乎。今天把平衡改成节能了,5600g从3.9G降到1.4G左右了。
感谢楼主和各楼
Reply Like 0 View the author
乐阿兰那
2023-06-06 21:11 deepin
@DebuggerX 大佬,您写的这个性能监控APP,我看着很欢喜,求下载地址。
另外,能写一个Win11 x64的吗??
谢谢
Reply Like 0 View the author
DebuggerX
2023-06-08 22:23 deepin
乐阿兰那:
@DebuggerX 大佬,您写的这个性能监控APP,我看着很欢喜,求下载地址。
另外,能写一个Win11 x64的吗??
谢谢
由于APP使用前需要向系统安装服务程序,这个安装流程的自动化我还没想清楚怎么弄,所以暂时不好放出来。Windows按理说不难支持,但是我不用Windows很久了,也没动力做,除非后面有很多人需要,否则短期应该不会支持。
估计一个月内能放出来吧。
Reply Like 0 View the author
把一切操作变成GUI
2023-07-10 10:05 deepin
Backbone of ecological co-construction group
乐阿兰那:
@DebuggerX 大佬,您写的这个性能监控APP,我看着很欢喜,求下载地址。
另外,能写一个Win11 x64的吗??
谢谢
我也想要这个app😂
Reply Like 0 View the author
DebuggerX
2023-07-12 17:55 deepin
把一切操作变成GUI:
我也想要这个app😂
自动化安装脚本快整好了,我再自测完善完善就可以放出来了
Reply Like 0 View the author
Please sign in first
起因
我给自己写了个在手机上监控系统性能的app,可以随时方便地看到电脑当前的各种信息,界面长这样的:
图中处理器的指示器,以及中间每个核心的指示器,内部的圆环表示当前CPU/核心的工作频率,外圈表示利用率,这样我就可以在工作时,尤其是编译代码的时候,清楚知道CPU有没有拖后腿。
然后上周更新了20.9之后,发现在使用我一直使用的平衡性能模式下,性能监控显示的却是下面的样子:
可以看到,虽然是在空载状态,每个核心明明占用率都极低,却都运行在最高频率,这显然是不正常的。
于是在使用如下代码监控了cpu的性能模式:
然后在控制中心的电源管理中,来回切换性能模式,结果发现果然当选择的是
平衡模式
时,CPU实际运行的确实性能模式(performance)
但是上周和本周前两天在优先解决另外一个更影响我使用的问题:[经验分享] 分享让用户可以自己强制指定系统缩放的方法,所以只能先搁置,直到昨天终于有空开始调查原因。
调查
我首先是去Github看了https://github.com/linuxdeepin/dde-daemon/tree/master/system/power1相关的代码,看了半天虽然感觉有些地方的逻辑也有点奇怪,但是没发现明显会导致我现在这种情况的代码。
然后又看了
/var/log/daemon.log
里的日志,发现4月17(没更新前)的日志是这样的:而4月18(更新后)的日志就变成了这样:
然后根据日志里的代码行号去看源码,发现居然完全找不到对应的代码???
于是只能把
/etc/apt/sources.list
里deb-src
的注释放开,然后用apt source dde-daemon
才下载到了正确的源码……分析
拿到源码,直接根据上面的日志里给到的代码行号看,结果就看到了如下代码:
可以看到设置为平衡模式时,实际是使用
m.balanceScalingGovernor
这个变量的值来设置的,所以再看这个变量是怎么来的:说明下这段代码:
/boot/
目录下去找config文件,这个文件是系统内核编译时的配置,取找到的第一个进项下一步,找不到的话将平衡模式的调度器设置为ondemand
CONFIG_CPU_FREQ_DEFAULT_GOV_DDE_
开头的行,并把第一个找到的项目的后面的内容转小写设置为平衡模式的调度器,如果没找到进行下一步CONFIG_CPU_FREQ_DEFAULT_GOV_
开头的行,并把第一个找到的项目的后面的内容转小写设置为平衡模式的调度器找不到的话将平衡模式的调度器设置为ondemand
而看下我当前的config文件的内容,没有任何以
CONFIG_CPU_FREQ_DEFAULT_GOV_DDE_
开头的行,以CONFIG_CPU_FREQ_DEFAULT_GOV_
开头的行则是下面的样子:所以在根据上面的代码和分析,
m.balanceScalingGovernor
这个变量就会被设置为performance
。。。我试了下,只要把上面内容里的第一行和第二行换下位置,甚至不用放开注释,也不用修改成
CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
,重启后我的平衡模式就可以正常设置成schedutil
了!质疑
虽然本人水平不高,对Linux系统以及开发顶多算一知半解,但是上面的这个代码是在是难以理解难以接受。
CONFIG_CPU_FREQ_DEFAULT_GOV_DDE_XXX
这样的选项是不是符合规范,单纯用正则匹配到的行来设置变量是不是有点过于不专业了?就像我的改法,只要把未解开设置也未设置值的选项移动到上面的位置,就可以影响代码的执行结果,实在是有点扯了吧?apt source
下载源码,我不知道还要自己瞎琢磨吓找多久;不光是这个版本的 dde-daemon,我之前找屏幕分辨率的问题时就发现了Github上找不到正确版本的startdde(系统版本5.9.70,开源版本则是5.9.64);另外还有上面代码里的utils.FindContentInFileRegexp
方法,看上去来自https://github.com/linuxdeepin/go-lib/tree/master/utils,实际去找却根本找不到这个方法,也就是说下载到的这份代码在我机器上根本就编译不了,要不是这个问题还算简单,看代码猜猜逻辑就够了,否则不知道要花多少时间精力才能解决。希望有知情的同学可以解释一下这是什么情况,上面的那些代码该不会还要进入到v23吧?