Emulationstation CPU usage
-
@Sano Hm. I see.
And are you confident that this was not the case in the previous ES versions? Would you feel comfortable installing an older version to test it out?
It seems it only drops when it goes to screensaver mode, is that correct?
Also, what do you mean by launching screensaver with select not working - do you mean it doesn't go to the screensaver, or does it go into screensaver mode but it doesn't lower the CPU? I assume it's the latter, which makes some sense knowing the code, but I'm worried about the suggestion that this may be a new thing, because that would warrant some further investigation. :/
-
I'm not 100% confident it wasn't the case with previous versions, but I can't remember seeing this behaviour.
My memories only contain an average of around 6% CPU used, as seen in some forums : see here https://www.reddit.com/r/RetroPie/comments/4fz878/what_is_emulationstation_doing_when_its_doing/Yes, the CPU drops when going in screensaver mode, but (yes again) only after the timeout. Forcing screensaver with select key on the carousel doesn't lower the CPU consumption.
Is there an ES package archive repository for me to try an old version ?
-
@Sano Are you comfortable compiling things on your Pi?
There seems to be an old 2.1.4 version here:
https://github.com/RetroPie/EmulationStation/releases
But it's the source code, not a binary.
If you're comfortable compiling things, though, we could even go for a git bisect, to track the change down, but first I'd try this version from February - which is sufficiently (I'd even say "scarily") old enough to test if it's a new thing or not.
We can then try to narrow things down further if needed.
Let me know, and thanks for helping with this!
-
Don't you want to have some confirmation of other users before enabling panic mode ? :)
I used to compile my linux kernel/drivers by myself, but it was nearly 20 years ago. apt killed my compilation skills... That said, I could give a try if needed, but on my "production" unit (don't have another Pi/SD to test).
Moreover, I try to make a full update at least once a month, so IMHO, and if the problem is not only in my head (or on my setup), the origin won't be more than a few weeks old.
-
There might be an issue.
I use top for monitoring cpu usage
I use IO themeYou start ES 99% CPU usage - that's okay
ES is started and connected with BT controller - CPU usage is 6-8%
You scroll around the carousel: 9-10% usage and it does not drop down
You open Emulation System (Amiga for ex) it stays to 14-15%
The Screensaver is activated by timer CPU usage drops down to 3% (does not work if you activate screen saver via select)I restart ES:
CPU usage is 6-8%
I scroll around... it raises 10% drops to 12%
I open Emulation System ... CPU usage 15%
It depends heavily on roms in folder 4000 roms CPU usage 20%, 10 roms in folder 10%Do you use interrupts for button managment or trigger timer?
-
-
Thanks @pjft for bringing me into the loop. My build was mostly for Pi zero /1 which would suffer heavily due to constant rendering of the screen. This doesn't mean there are any disadvantages on using it on Pi2/3. I would be glad to create a production ready branch that can then be installed by users using meleu's script.
@Sano , @cyperghost would you guys be interested in testing this feature for me? I am interested in submitting this as a feature. It is quite stable for now but not ready for merge. As such testers would be most welcome.
@meleu Based on this and many other experiences would you think it would be better if there are some repositories already included in the script. This will create awareness and testers can test branches out without having to hunt for which branches need testing.
-
@Hex I'm not sure... Once the branch is merged there's no need to keep it in the list IMHO.
I'm planning to work out my git-fu and try to find a way to get the branches from the open Pull Requests list in the EmulationStation repo and build a list based on that info. It would pretty cool, huh? :-)
It seems that you're more experienced with git, do you know how to do that (get a list of open PRs and their respective repo/branch)?
I've found some documentation here but didn't find enough free time to dive into it. I am planning to use
curl
to get the needed info... -
do you know how to do that (get a list of open PRs and their respective repo/branch)?
Getting the info in a JSON format:
https://api.github.com/repos/RetroPie/EmulationStation/pulls?status=openNow I need some time to learn how to use
jq
:
https://stedolan.github.io/jq/Looks promising! I'll try to release something next weekend! ;-)
-
Json makes it very easy. I was already starting with curl (mobile page)+regex. I will let you know if i finish .
-
@meleu How about this
Get page from github
curl https://api.github.com/repos/RetroPie/EmulationStation/pulls?status=open > page
Loop over all PRs
n_pr=$(($(cat page | ./jq-linux64 'keys | length')-1)) for i in `seq 0 "$n_pr"`; do cat page | ./jq-linux64 ".[$i] | {name: .user.login, title: .title, branch: .head.ref}" # Do individual processing here eg. add each item to list echo "Yolo \m/" done # Or get all PRs in single operation cat page | ./jq-linux64 ".[] | {name: .user.login, title: .title, branch: .head.ref}"
Output
{ "name": "pjft", "title": "Adding support for \"All\", \"Favorites\" and \"Last Played\" systems", "branch": "RetroPie-Virtual-Systems-PR" } { "name": "nschloe", "title": "various code fixes", "branch": "coverity-retropie" } { "name": "PronkMedia", "title": "Added a new (missing) transition style, 'carousel slide'.", "branch": "master" } { "name": "sokie", "title": "Implemented favourites system", "branch": "favourites" } { "name": "seriema", "title": "OSX compilation fixes", "branch": "osx-compilation-fixes" }
-
@Hex by the way, I have a raspi1 and I'm interested in test your branch. What's its name?
-
@meleu Its my master branch. It has all tweaks and works. I was thinking of separating the feature so that a pull request can be optionally submitted. The only downside is Screensaver is not triggered as the Pi waits for user input and stops rendering new frames as there is literally nothing to do. Although it can be manually triggered by pressing "select" in systems menu
-
@Hex said in Emulationstation CPU usage:
@Sano , @cyperghost would you guys be interested in testing this feature for me? I am interested in submitting this as a feature. It is quite stable for now but not ready for merge. As such testers would be most welcome.
Sure! I can test this on a RPi 2 - would you offer ready compiled binaries?
Is it enough to just exchange the binary from /opt/emulationstation?
Why do you use OMXPlayer as background player? I think mpg123 is less resource hungry and it's simple command structure is excellent in saving memory space. -
@Hex Yeah! That feature was added. Posted about it here: https://retropie.org.uk/forum/post/88716
Now I have to find some time to merge those improvements you made on your version of script...
Cheers!
-
Anyone experiencing this, using the "power saver modes" option solved the problem for me. The menu option is at start -> other settings -> power saver modes. Enhanced and instant worked well.
I'm using V2.6.3RP, on a Raspberry Pi 3 B. Idle, even with the screensaver set to a black screen, the emulationstation parent process would be at 30% cpu usage or more. On "instant," it ranges between 5% and 10%.
I realize this is an old post, but it's the only thing that came up in my search on this particular issue.
-
Thanks for that tip finh! I was trying to troubleshoot cpu usage on x86 emulationstation and happened on your post, works perfectly to address cpu usage!
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.