gitbobobo/StreamMusic

Android,CPU占用有点高,手机发烫

Opened this issue · 10 comments

Screenshot_2023-10-18-09-51-56-40_a5c17d2e2fb3cc7223d3ad8bda19a0b6

如题,如图,cpu其实还行,至少没达到100%,但确实有发烫感觉,有办法优化吗?

IMG_20231018_100701

对比另一个播放器。。。不过这播放器是本地播放。但是音流缓存后不也是本地播放嘛?

这是播放时的占用还是暂停时的占用

上面两个截图都是播放时的CPU占用。暂停后就基本0%了。(以下内容我猜的)跟歌词有关吗?但是我关掉了桌面歌词和锁屏歌词后,CPU占用也没有降低。

更新:不对,暂停后还有2%-3%占用。。。暂停了1分钟后也是2%-3%。这时不是应该0%吗?这个时候app在做些什么吗?

CPU占用高目前看来应该是原生端和Flutter端的通信过于频繁造成的,因为播放时会监控进度变化事件。

暂停时只有一个30s执行一次的离线模式检查的定时任务,这个也消耗不了多少资源,别的也没有了,具体为什么会有 CPU 占用我也不太清楚,得再看看。

我理解的进度变化事件应该只用于歌词和进度条吧。我觉得进度条只需要0.5s或1s查询一次进度,歌词最好能优化到每句歌词查询一次,所以也许不要监听进度变化,改成歌词和进度条主动轮询比较好?

更新:macos版本,播放状态的CPU占用也比其他播放器高。我这里通过mac内置的活动监视器看大约是 17%-20%,其他一般是3%-5% 。

定位到问题了,是封面旋转这种循环动画导致的(每秒要一直渲染60或120帧,确实对CPU有不小的负担),下个版本会提供个选项:是否开启省电模式。

这应该属于flutter的优化问题,之前曾提过一个issue,还以为只会在iOS上出现呢。一个最简单的循环动画都快把CPU跑满了,很无语,也不知道啥时候能解决。

定位到问题了,是封面旋转这种循环动画导致的(每秒要一直渲染60或120帧,确实对CPU有不小的负担),下个版本会提供个选项:是否开启省电模式。

这应该属于flutter的优化问题,之前曾提过一个issue,还以为只会在iOS上出现呢。一个最简单的循环动画都快把CPU跑满了,很无语,也不知道啥时候能解决。

😂😂😂😂😂😂

建议提供个ui选项吧——使用方形封面/圆形旋转封面。

另外,建议app收到后台之后把动画都停掉 😅

@gitbobobo macOS M芯片 也有高CPU占用的问题. 音流的进程好像是中文的,我的系统是英文,显示为乱码. 播放时,CPU经常冲到100%.

PID COMMAND %CPU TIME #TH #WQ #PORT MEM PURG CMPRS PGRP PPID STATE BOOSTS %CPU_ME %CPU_OTHRS UID FAULTS
64105 ?~_??~A 154.6 01:43.0733 4 451- 356+ 69M 0B 64105 1 sleeping *0[29] 0.49675 0.00000 501 118402+
418 coreaudiod 142.1 29:18.05 9 1 1212 33M 0B 9056K 418 1 sleeping *0[1] 0.00000 0.00000 202 99832

iphone15 pro 也有同样的问题,播放音乐 手机非常烫,其他播放器没有这个问题