MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Electron CPU usage

    Scheduled Pinned Locked Moved Troubleshooting
    247 Posts 46 Posters 596.3k Views 42 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S Offline
      SashMare
      last edited by

      Hi.

      I made a downgrade Electron from v1.7.15 to v1.4.15.
      CPU load up to 320% is gone.

      Hardware: BCM2835
      Revision: a22082
      MagicMirror: 2.1.2

      W 1 Reply Last reply Reply Quote 1
      • W Offline
        wtidwell @SashMare
        last edited by

        @SashMare @Mykle1 my
        I also downgraded electron to 1.4.15 and I’m seeing dramatically improved performance!

        D Mykle1M 2 Replies Last reply Reply Quote 1
        • D Offline
          djsunrise19 @wtidwell
          last edited by djsunrise19

          @wtidwell said in Electron CPU usage:

          @SashMare @Mykle1 my
          I also downgraded electron to 1.4.15 and I’m seeing dramatically improved performance!

          Do you have some CPU load Screenshots? As I read, around 55% is to high too.

          W 1 Reply Last reply Reply Quote 0
          • W Offline
            wtidwell @djsunrise19
            last edited by

            @djsunrise19
            Not on hand but I’m seeing in the mid 20’s with newsfeed animations

            1 Reply Last reply Reply Quote 0
            • Mykle1M Offline
              Mykle1 Project Sponsor Module Developer @wtidwell
              last edited by

              @wtidwell said in Electron CPU usage:

              I also downgraded electron to 1.4.15 and I’m seeing dramatically improved performance!

              Well, that’s good news! :^)

              Create a working config
              How to add modules

              1 Reply Last reply Reply Quote 0
              • Mykle1M Offline
                Mykle1 Project Sponsor Module Developer
                last edited by

                You guys are both running MM 2.1.2? There has been some mention that this problem arose after the upgrade. My Pi3 B mirror is still running MM 2.1.0. :-/

                Just a thought.

                Create a working config
                How to add modules

                M 1 Reply Last reply Reply Quote 0
                • M Offline
                  mibafz00 @Mykle1
                  last edited by mibafz00

                  @Mykle1
                  Today, I tried the following:

                  MM 2.1.2 + Electron 1.7.5 --> CPU 100% during transitions

                  MM 2.1.2 + Electron 1.4.15 --> problem still there, CPU 100% during transitions

                  MM 2.1.0 + Electron 1.7.5 --> problem still there, CPU 100% during transitions

                  MM 2.1.0 + Electron 1.4.15 --> problem (probably) gone, CPU 40% during transitions

                  So i guess you have to downgrade both, MM and electron…!?

                  Mykle1M 1 Reply Last reply Reply Quote 2
                  • Mykle1M Offline
                    Mykle1 Project Sponsor Module Developer @mibafz00
                    last edited by

                    @mibafz00 said in Electron CPU usage:

                    MM 2.1.0 + Electron 1.4.15 --> problem (probably) gone, CPU 40% during transitions

                    I’m curious. What is the CPU load at rest, when no transitions are executing?

                    In any case, that’s a good amount of testing on your part, and hopefully it will lead to a final diagnosis of the problem.

                    Create a working config
                    How to add modules

                    1 Reply Last reply Reply Quote 0
                    • D Offline
                      djsunrise19
                      last edited by djsunrise19

                      Today, I tried a few things, too. Perhaps my results could be helpful for us. Sorry, this will be a long post ;). I have following the devices:

                      • Raspberry 3 Model B - my standard mirror device
                      • Asus Tinker Board
                      • odroid C2 (ARM64)

                      Software Versions MM:

                      • MM v2.1.2 on all devices

                      Electron Versions:

                      • Raspberry 3 Model B (v1.6.11)
                      • Asus Tinker Board (v1.4.15) but v1.6.11 works the same
                      • odroid C2 (ARM64) (v.1.8.0 - because of the x64; I uninstalled spectron, because there is no x64 support)

                      Configs:

                      • Standard (Calendar, Compliments, Newsfeed, Clock)
                      • MyConfig (Calendar, Compliments, Newsfeed, Clock, Todoist, Sonos, Netatmo, WheaterUnderground, Stocks, Reiseauskunft, Strava); here, cpu usage is a little bit higher, but the behaviour is the same.

                      The 100% usage topic seems to be a electron problem and I think it can be solved with some downgrades of MM2 and electron. v.1.7.5 seems to be bad. Whatever, here is what I found out:

                      1. nmon with the ATB (v1.7.5 electron here) and default config:
                        0_1504730980288_atb_defaultconfig-2.1.2-MM-1.7.5-elec.png
                        CPU usage while transitions is very high. Lagging!

                      2. nmon with the ATB (v1.4.15 electron here) and default config:
                        0_1504731051428_atb_defaultconfig-2.1.2-MM-1.4.15-elec.png
                        CPU usage is better but, to be honest, way to high for transitions (cpu peaks). And still some small lags.

                      3. nmon with the odroid and default config:
                        0_1504731421342_odroid_defaultconfig-2.1.2-MM-1.8.0-elec.png
                        The best result. but still peaks while the transitions. Some lags here, too.

                      So, here is my actual config:
                      4) nmon with the Raspberry 3 Model B and MyConfig:
                      0_1504731971062_raspi3_mauroconfig-2.1.2-MM-1.6.11-elec.png
                      Same here, still lags.

                      The last thing I tried was very interesting. I opened my chromium on the ATB and put the webadress from my Raspberry 3 Model B device in it. So I openend that Rapsberry 3 Model B MM2 on my ATB. And that happens:
                      0_1504731554810_atb_mauroconfig-browser-raspi.png
                      Absolutely smooth, no peaks at all.

                      BTW: My Raspberry 3 Model didn’t have any more cpu usage while that process.

                      Can anybody tell us, WHY?

                      ? 1 Reply Last reply Reply Quote 0
                      • ? Offline
                        A Former User @djsunrise19
                        last edited by

                        @djsunrise19
                        As I see, rendering engine of electron seems to be the reason of whole of thing. Electron has its own v8 and renderer. I doubt it goes worse on some late version. I don’t know why, but there is few things we could do.

                        Report this to electron, wait a patch. Or downgrade or… turn off the animation.

                        D Mykle1M 2 Replies Last reply Reply Quote 0
                        • D Offline
                          djsunrise19 @Guest
                          last edited by

                          @Sean said in Electron CPU usage:

                          @djsunrise19
                          As I see, rendering engine of electron seems to be the reason of whole of thing. Electron has its own v8 and renderer. I doubt it goes worse on some late version. I don’t know why, but there is few things we could do.

                          Report this to electron, wait a patch. Or downgrade or… turn off the animation.

                          Seems logical. But I have to mention, that there is no MMv2 and electron version number combination that works without those peaks and small lags. The smoothest way ist the browser directly (like in MMv1 - everything was fine there).

                          So the question is: Anyone here who doesn’t have those peaks and lags while the transitions with MMv2 and electron?

                          Mykle1M 1 Reply Last reply Reply Quote 0
                          • Mykle1M Offline
                            Mykle1 Project Sponsor Module Developer @djsunrise19
                            last edited by

                            @djsunrise19 said in Electron CPU usage:

                            So the question is: Anyone here who doesn’t have those peaks and lags while the transitions with MMv2 and electron?

                            This topic is only 17 days old, yet it has 5.0k views already. So, obviously there is a lot of interest. My answer likely was lost somewhere above, so:

                            I do NOT have those peaks and lags

                            Create a working config
                            How to add modules

                            1 Reply Last reply Reply Quote 0
                            • Mykle1M Offline
                              Mykle1 Project Sponsor Module Developer @Guest
                              last edited by

                              @Sean said in Electron CPU usage:

                              I doubt it goes worse on some late version

                              With all due respect, I have to disagree. New versions can break existing installations in any software, not just MM. It’s the very reason for many patches. However, we don’t know the reason for this issue, and it may well be that electron isn’t the cause, but some users have had a small measure of improvement with earlier versions.

                              Create a working config
                              How to add modules

                              1 Reply Last reply Reply Quote 0
                              • L Offline
                                loctruong96 @TiemenMoesker
                                last edited by loctruong96

                                @TiemenMoesker HOLY MOLLY, I am having this exact problem you guys are having. I double checked my hardware and revision. which are
                                hardware =BCM2835
                                Revision= a02082
                                and I DO have this problem, it seems nothing you guys tried work except downgrade , so I’m going to ask arrow to send me a replacement since i actually ordered BCM2837 not BCM2835. Let’s hope it work out! (mean while I will try the downgrade option, seemed to improve performance drastically for others)

                                Mykle1M 1 Reply Last reply Reply Quote 0
                                • Mykle1M Offline
                                  Mykle1 Project Sponsor Module Developer @loctruong96
                                  last edited by

                                  @loctruong96 said in Electron CPU usage:

                                  (mean while I will try the downgrade option, seemed to improve performance drastically for others)

                                  Please keep us posted

                                  Create a working config
                                  How to add modules

                                  1 Reply Last reply Reply Quote 0
                                  • L Offline
                                    loctruong96
                                    last edited by loctruong96

                                    OK, I can here by confirm that using MM 2.1.0 + Electron 1.4.15 improved performance massively. Each new transition now only uses 10-13% of CPU power (and very, very smooth). Even better than earlier report of 40%. For the specs of my pi 3 b
                                    hardware = BCM2835
                                    Revision = a02082
                                    micro sd card - 16gb - class 4 (that’s right, only 4)
                                    mouse + keyboard currently plugged in - no lag
                                    OS = RASPBIAN STRETCH WITH DESKTOP
                                    Thank you so much @Mykle1 for sharing your finding. Otherwise, I would be still trying to narrow down a potential work around.

                                    For those who not sure how to do this:

                                    1. Create a fresh install of RASPBIAN STRETCH WITH DESKTOP, connect to wifi, then run sudo apt-get update.
                                    2. sudo apt-get install npm
                                    3. sudo npm install electron@1.4.15 -g
                                    4. WAIT PATIENTLY FOR ELECTRON TO LOAD IN THE BACKGROUND
                                    5. a new line appear indicate electron has finished installing
                                    6. Go to your download folder, exact Magic Mirror 2.1.0
                                    7. Go to the newly exacted forlder, open another folder named config
                                    8. Change the file name Config.js.example to Config.js inside the config folder
                                    9. open terminal , cd Download/, cd MagicMirror-2.1.0, (OR whatever your location for the Magic Mirror 2.1.0 package is), npm install && npm start
                                      9.5 If encounter error “404”, try “npm install npm@latest -g” (NOTE: some users experienced issues since they do not have the latest npm as global variable) @Reotch2 @EventHorizon
                                    10. DONE!

                                    Hopefully I will be able to return my pi 3 for a better hardware version to use with the latest Magic Mirror package but here is an acceptable work around for the time being.

                                    Mykle1M R 2 Replies Last reply Reply Quote 5
                                    • Mykle1M Offline
                                      Mykle1 Project Sponsor Module Developer @loctruong96
                                      last edited by

                                      @loctruong96 said in Electron CPU usage:

                                      Thank you so much @Mykle1 for sharing your finding.

                                      You are most welcome. :^)

                                      I would like to give credit to everyone that is participating in this topic. By putting our heads together we’ve eliminated some possibilities but we haven’t pinpointed the problem, yet. We have narrowed it down a bit, though, and this workaround is helping some people. I’m glad you’re one of them.

                                      Create a working config
                                      How to add modules

                                      1 Reply Last reply Reply Quote 0
                                      • E Offline
                                        EventHorizon
                                        last edited by

                                        Just a quick post in an attempt to re-create the above steps. I get to the part where I have to type “npm install && npm start” and I get an error 404 ‘Not Found’. ‘types/node’ is not in the npm registry. ‘It was specified as a dependency of ‘electron’’

                                        Any idea what I’m doing wrong?

                                        Thanks.

                                        strawberry 3.141S 1 Reply Last reply Reply Quote 0
                                        • strawberry 3.141S Offline
                                          strawberry 3.141 Project Sponsor Module Developer @EventHorizon
                                          last edited by

                                          @EventHorizon it should be @types/node

                                          Please create a github issue if you need help, so I can keep track

                                          E 1 Reply Last reply Reply Quote 0
                                          • E Offline
                                            EventHorizon @strawberry 3.141
                                            last edited by EventHorizon

                                            @strawberry-3.141 thank you for the quick reply. Just to confirm: where am I entering @types/node. Sorry for being a noob at this. Thanks for your help!

                                            EDIT: I got the node/type to work by updating using sudo npm install npm@latest -g

                                            Now when I run sudo npm install in the magic mirror folder I get an error code LIFECYCLE. errno 1. “electron@1.7.6” postinstall ‘node install.js’.

                                            ‘failed at the electron@1.7.6 postinstall script’.

                                            Any ideas?

                                            EDIT2: used sudo npm install -g electron --unsafe-perm=true.

                                            This seemed to work. I will monitor performance and let you all know.

                                            EDIT3:

                                            Been monitoring it for an hour or so now. CPU temp has not gone over 50. While before it was around a constant 60 - 65.
                                            Compliments and Newsfeed animations are SUPER SMOOTH.

                                            I can confirm that using MM 2.1.0 with Electron 1.4.15 has insanely improved performance! Thanks to everyone in this thread and to @Mykle1 for pointing this thread out for me.

                                            I just have ONE final question guys. I used my custom.css file from my newer build and all was fine after I removed the ‘everyday’ segment of the code from the compliments module. HOWEVER…I notice in the background (If i tab to terminal) This message pops up:

                                            “Fatal: not a git repository (or any of the parent directories): .git”

                                            However, it does not seem to affect the mirror? Or not in any way I can see? Is there any way I can pinpoint how this message is being generated? Like I said, it does not appear to affect any of my modules.

                                            Any help would be greatly appreciated.

                                            Cheers all!

                                            Mykle1M 1 Reply Last reply Reply Quote 1

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 5
                                            • 6
                                            • 7
                                            • 8
                                            • 9
                                            • 12
                                            • 13
                                            • 7 / 13
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy