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.
    • 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
                                    • Mykle1M Offline
                                      Mykle1 Project Sponsor Module Developer @EventHorizon
                                      last edited by

                                      @EventHorizon said in Electron CPU usage:

                                      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.

                                      If you read this entire thread then you know that I’ve been at this for three weeks. It started as a question from a single user and grew quickly and substantially. 148 posts and 6.0k views later showed there was/is an issue affecting many users, yourself included. I’m glad this workaround has helped you. Enjoy!

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

                                      I get these, too, when I do a manual installation of a module, or the MM software itself. What type of installation did you do?

                                      In any event, it does not affect the operation of the MM software. Perhaps someone will give us a more detailed description of why it appears.

                                      Create a working config
                                      How to add modules

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

                                        @Mykle1 Thank you for the quick reply!

                                        For the custom modules I used the git commands however, for the magic mirror module I just downloaded it and unzipped it, as I wasn’t sure if I could use a git command to request a specific version of magic mirror. Is there a way of using git to call MM 2.1.0? Just out of pure curiosity!

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

                                          @EventHorizon said in Electron CPU usage:

                                          for the magic mirror module I just downloaded it and unzipped it, as I wasn’t sure if I could use a git command to request a specific version of magic mirror. Is there a way of using git to call MM 2.1.0?

                                          That’s how I do it, as well. I’m old and somewhat set in my ways when it comes to some things.

                                          I’m really not sure if you can call an earlier version through git. It would be nice if we could do something like this:
                                          https://github.com/MichMich/**MagicMirror210**.git

                                          I never tried it. Anyone else have an answer to this?

                                          As it is, the link to the earlier version looks like this:
                                          https://github.com/MichMich/MagicMirror/archive/v2.1.0.zip

                                          Create a working config
                                          How to add modules

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

                                            @Mykle1 you can go to every commit you’d like to go, but it’s easier to choose a specific tag

                                            git clone ...
                                            git checkout v2.1.0
                                            

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

                                            Mykle1M 1 Reply Last reply Reply Quote 3

                                            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
                                            • 6
                                            • 7
                                            • 8
                                            • 9
                                            • 10
                                            • 11
                                            • 12
                                            • 13
                                            • 8 / 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