nix-community/nix-doom-emacs

High CPU && RAM usage

fuhen56 opened this issue · 4 comments

Extreme RAM usage.

  • System: NixOS unstable channel.

I've installed it through "nix run ." and the resulting program is slow. I just thought it's the standard Emacs experience, since this is my first ever try.

But then I started hearing my laptop's fan screaming. I was surprised by this:
image

flake.nix (default)
{
  description = "nix-doom-emacs home-manager module";

  inputs = {
    # TODO: change back to master once we get synced back with upstream changes
    doom-emacs.url = "github:doomemacs/doomemacs/3853dff5e11655e858d0bfae64b70cb12ef685ac";
    doom-emacs.flake = false;
    doom-snippets.url = "github:doomemacs/snippets";
    doom-snippets.flake = false;
    emacs-overlay.url = "github:nix-community/emacs-overlay/c16be6de78ea878aedd0292aa5d4a1ee0a5da501";
    emacs-overlay.flake = false;
    emacs-so-long.url = "github:hlissner/emacs-so-long";
    emacs-so-long.flake = false;
    evil-escape.url = "github:hlissner/evil-escape";
    evil-escape.flake = false;
    evil-markdown.url = "github:Somelauw/evil-markdown";
    evil-markdown.flake = false;
    evil-org-mode.url = "github:hlissner/evil-org-mode";
    evil-org-mode.flake = false;
    evil-quick-diff.url = "github:rgrinberg/evil-quick-diff";
    evil-quick-diff.flake = false;
    explain-pause-mode.url = "github:lastquestion/explain-pause-mode";
    explain-pause-mode.flake = false;
    format-all.url = "github:lassik/emacs-format-all-the-code/47d862d40a088ca089c92cd393c6dca4628f87d3";
    format-all.flake = false;
    nix-straight.url = "github:nix-community/nix-straight.el";
    nix-straight.flake = false;
    nose.url = "github:emacsattic/nose";
    nose.flake = false;
    ob-racket.url = "github:xchrishawk/ob-racket";
    ob-racket.flake = false;
    org-contrib.url = "github:emacsmirror/org-contrib";
    org-contrib.flake = false;
    org-yt.url = "github:TobiasZawada/org-yt";
    org-yt.flake = false;
    org.url = "github:emacs-straight/org-mode";
    org.flake = false;
    php-extras.url = "github:arnested/php-extras";
    php-extras.flake = false;
    revealjs.url = "github:hakimel/reveal.js";
    revealjs.flake = false;
    rotate-text.url = "github:debug-ito/rotate-text.el";
    rotate-text.flake = false;
    sln-mode.url = "github:sensorflo/sln-mode";
    sln-mode.flake = false;
    ts-fold.url = "github:jcs-elpa/ts-fold";
    ts-fold.flake = false;
    ws-butler.url = "github:hlissner/ws-butler";
    ws-butler.flake = false;

    nixpkgs.url = "nixpkgs/nixpkgs-unstable";
    flake-utils.url = "github:numtide/flake-utils";
    flake-compat.url = "github:edolstra/flake-compat";
    flake-compat.flake = false;
  };

  outputs = { self, nixpkgs, flake-utils, ... }@inputs:
    let inherit (flake-utils.lib) eachDefaultSystem mkApp;
    in eachDefaultSystem (system:
      let pkgs = import nixpkgs { inherit system; };
      in {
        apps = {
          default = self.outputs.apps.${system}.doom-emacs-example;
          doom-emacs-example = mkApp {
            drv = self.outputs.packages.${system}.doom-emacs-example;
            exePath = "/bin/emacs";
          };
        };

        devShells.default = pkgs.mkShell {
          buildInputs =
            [ (pkgs.python3.withPackages (ps: with ps; [ PyGithub ])) ];
        };

        package = { ... }@args:
          pkgs.lib.warn ''
            nix-doom-emacs no longer supports the deprecated `package` flake output.
            It will be removed after the release of NixOS 23.05.

            Please use `packages.${system}.default.override { ... }` instead!
          ''
          (pkgs.callPackage self args);

        packages = {
          default = self.outputs.packages.${system}.doom-emacs-example;
          doom-emacs-example = pkgs.callPackage self {
            doomPrivateDir = ./test/doom.d;
          };
        };
        checks = import ./checks.nix { inherit system; } inputs;
      }) // {
        hmModule = import ./modules/home-manager.nix inputs;
      };
}
flake.lock
{
  "nodes": {
    "doom-emacs": {
      "flake": false,
      "locked": {
        "lastModified": 1662497747,
        "narHash": "sha256-4n7E1fqda7cn5/F2jTkOnKw1juG6XMS/FI9gqODL3aU=",
        "owner": "doomemacs",
        "repo": "doomemacs",
        "rev": "3853dff5e11655e858d0bfae64b70cb12ef685ac",
        "type": "github"
      },
      "original": {
        "owner": "doomemacs",
        "repo": "doomemacs",
        "rev": "3853dff5e11655e858d0bfae64b70cb12ef685ac",
        "type": "github"
      }
    },
    "doom-snippets": {
      "flake": false,
      "locked": {
        "lastModified": 1694887483,
        "narHash": "sha256-KlKhruPSLPSKqUnr5/U65arm16VrY9ORzm+XKNZhpTQ=",
        "owner": "doomemacs",
        "repo": "snippets",
        "rev": "f022984ee1318a4015d5d081b3c3dab5a60dc6ff",
        "type": "github"
      },
      "original": {
        "owner": "doomemacs",
        "repo": "snippets",
        "type": "github"
      }
    },
    "emacs-overlay": {
      "flake": false,
      "locked": {
        "lastModified": 1676366521,
        "narHash": "sha256-i4UAY8t9Au9SJtsgYppa3NHSVf1YkV6yqnNIQd+Km4g=",
        "owner": "nix-community",
        "repo": "emacs-overlay",
        "rev": "c16be6de78ea878aedd0292aa5d4a1ee0a5da501",
        "type": "github"
      },
      "original": {
        "owner": "nix-community",
        "repo": "emacs-overlay",
        "rev": "c16be6de78ea878aedd0292aa5d4a1ee0a5da501",
        "type": "github"
      }
    },
    "emacs-so-long": {
      "flake": false,
      "locked": {
        "lastModified": 1575031854,
        "narHash": "sha256-xIa5zO0ZaToDrec1OFjBK6l39AbA4l/CE4LInVu2hi0=",
        "owner": "hlissner",
        "repo": "emacs-so-long",
        "rev": "ed666b0716f60e8988c455804de24b55919e71ca",
        "type": "github"
      },
      "original": {
        "owner": "hlissner",
        "repo": "emacs-so-long",
        "type": "github"
      }
    },
    "evil-escape": {
      "flake": false,
      "locked": {
        "lastModified": 1588439096,
        "narHash": "sha256-aB2Ge5o/93B18tPf4fN1c+O46CNh/nOqwLJbox4c8Gw=",
        "owner": "hlissner",
        "repo": "evil-escape",
        "rev": "819f1ee1cf3f69a1ae920e6004f2c0baeebbe077",
        "type": "github"
      },
      "original": {
        "owner": "hlissner",
        "repo": "evil-escape",
        "type": "github"
      }
    },
    "evil-markdown": {
      "flake": false,
      "locked": {
        "lastModified": 1626852210,
        "narHash": "sha256-HBBuZ1VWIn6kwK5CtGIvHM1+9eiNiKPH0GUsyvpUVN8=",
        "owner": "Somelauw",
        "repo": "evil-markdown",
        "rev": "8e6cc68af83914b2fa9fd3a3b8472573dbcef477",
        "type": "github"
      },
      "original": {
        "owner": "Somelauw",
        "repo": "evil-markdown",
        "type": "github"
      }
    },
    "evil-org-mode": {
      "flake": false,
      "locked": {
        "lastModified": 1607203864,
        "narHash": "sha256-JxwqVYDN6OIJEH15MVI6XOZAPtUWUhJQWHyzcrUvrFg=",
        "owner": "hlissner",
        "repo": "evil-org-mode",
        "rev": "a9706da260c45b98601bcd72b1d2c0a24a017700",
        "type": "github"
      },
      "original": {
        "owner": "hlissner",
        "repo": "evil-org-mode",
        "type": "github"
      }
    },
    "evil-quick-diff": {
      "flake": false,
      "locked": {
        "lastModified": 1575189609,
        "narHash": "sha256-oGzl1ayW9rIuq0haoiFS7RZsS8NFMdEA7K1BSozgnJU=",
        "owner": "rgrinberg",
        "repo": "evil-quick-diff",
        "rev": "69c883720b30a892c63bc89f49d4f0e8b8028908",
        "type": "github"
      },
      "original": {
        "owner": "rgrinberg",
        "repo": "evil-quick-diff",
        "type": "github"
      }
    },
    "explain-pause-mode": {
      "flake": false,
      "locked": {
        "lastModified": 1595842060,
        "narHash": "sha256-++znrjiDSx+cy4okFBBXUBkRFdtnE2x+trkmqjB3Njs=",
        "owner": "lastquestion",
        "repo": "explain-pause-mode",
        "rev": "2356c8c3639cbeeb9751744dbe737267849b4b51",
        "type": "github"
      },
      "original": {
        "owner": "lastquestion",
        "repo": "explain-pause-mode",
        "type": "github"
      }
    },
    "flake-compat": {
      "flake": false,
      "locked": {
        "lastModified": 1673956053,
        "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
        "owner": "edolstra",
        "repo": "flake-compat",
        "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
        "type": "github"
      },
      "original": {
        "owner": "edolstra",
        "repo": "flake-compat",
        "type": "github"
      }
    },
    "flake-utils": {
      "inputs": {
        "systems": "systems"
      },
      "locked": {
        "lastModified": 1694529238,
        "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
        "owner": "numtide",
        "repo": "flake-utils",
        "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
        "type": "github"
      },
      "original": {
        "owner": "numtide",
        "repo": "flake-utils",
        "type": "github"
      }
    },
    "format-all": {
      "flake": false,
      "locked": {
        "lastModified": 1581716637,
        "narHash": "sha256-ul7LCe60W8TIvUmUtZtZRo8489TK9iTPDsLHmzxY57M=",
        "owner": "lassik",
        "repo": "emacs-format-all-the-code",
        "rev": "47d862d40a088ca089c92cd393c6dca4628f87d3",
        "type": "github"
      },
      "original": {
        "owner": "lassik",
        "repo": "emacs-format-all-the-code",
        "rev": "47d862d40a088ca089c92cd393c6dca4628f87d3",
        "type": "github"
      }
    },
    "nix-straight": {
      "flake": false,
      "locked": {
        "lastModified": 1694361489,
        "narHash": "sha256-kjDp+j6OtrmqbtjQB5uuOtjS08+kgJQuxFqhWE1Y9Rw=",
        "owner": "nix-community",
        "repo": "nix-straight.el",
        "rev": "748be99b84be0b130e946288099806a0f16d6e57",
        "type": "github"
      },
      "original": {
        "owner": "nix-community",
        "repo": "nix-straight.el",
        "type": "github"
      }
    },
    "nixpkgs": {
      "locked": {
        "lastModified": 1695806987,
        "narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=",
        "owner": "NixOS",
        "repo": "nixpkgs",
        "rev": "f3dab3509afca932f3f4fd0908957709bb1c1f57",
        "type": "github"
      },
      "original": {
        "id": "nixpkgs",
        "ref": "nixpkgs-unstable",
        "type": "indirect"
      }
    },
    "nose": {
      "flake": false,
      "locked": {
        "lastModified": 1400604510,
        "narHash": "sha256-daEi8Kta1oGaDEmUUDDQMahTTPOpvNpDKk22rlr7cB0=",
        "owner": "emacsattic",
        "repo": "nose",
        "rev": "f8528297519eba911696c4e68fa88892de9a7b72",
        "type": "github"
      },
      "original": {
        "owner": "emacsattic",
        "repo": "nose",
        "type": "github"
      }
    },
    "ob-racket": {
      "flake": false,
      "locked": {
        "lastModified": 1584656173,
        "narHash": "sha256-rBUYDDCXb+3D4xTPQo9UocbTPZ32kWV1Uya/1DmZknU=",
        "owner": "xchrishawk",
        "repo": "ob-racket",
        "rev": "83457ec9e1e96a29fd2086ed19432b9d75787673",
        "type": "github"
      },
      "original": {
        "owner": "xchrishawk",
        "repo": "ob-racket",
        "type": "github"
      }
    },
    "org": {
      "flake": false,
      "locked": {
        "lastModified": 1695726851,
        "narHash": "sha256-qgbjspklSoI8M3cbCJOcUdjuijRgsL/+PSyEOW9VX4I=",
        "owner": "emacs-straight",
        "repo": "org-mode",
        "rev": "aa9177e1a8b039c357d369c1c9aaab710bb247a9",
        "type": "github"
      },
      "original": {
        "owner": "emacs-straight",
        "repo": "org-mode",
        "type": "github"
      }
    },
    "org-contrib": {
      "flake": false,
      "locked": {
        "lastModified": 1694946041,
        "narHash": "sha256-X/HFG6NZe5BY00KvGbcsIuf9R6Lg8x7Uhd0Y5+Q3qZU=",
        "owner": "emacsmirror",
        "repo": "org-contrib",
        "rev": "5eabbf22bdd4523c922a30787e98ee66c24221aa",
        "type": "github"
      },
      "original": {
        "owner": "emacsmirror",
        "repo": "org-contrib",
        "type": "github"
      }
    },
    "org-yt": {
      "flake": false,
      "locked": {
        "lastModified": 1527381913,
        "narHash": "sha256-dzQ6B7ryzatHCTLyEnRSbWO0VUiX/FHYnpHTs74aVUs=",
        "owner": "TobiasZawada",
        "repo": "org-yt",
        "rev": "40cc1ac76d741055cbefa13860d9f070a7ade001",
        "type": "github"
      },
      "original": {
        "owner": "TobiasZawada",
        "repo": "org-yt",
        "type": "github"
      }
    },
    "php-extras": {
      "flake": false,
      "locked": {
        "lastModified": 1573312690,
        "narHash": "sha256-r4WyVbzvT0ra4Z6JywNBOw5RxOEYd6Qe2IpebHXkj1U=",
        "owner": "arnested",
        "repo": "php-extras",
        "rev": "d410c5af663c30c01d461ac476d1cbfbacb49367",
        "type": "github"
      },
      "original": {
        "owner": "arnested",
        "repo": "php-extras",
        "type": "github"
      }
    },
    "revealjs": {
      "flake": false,
      "locked": {
        "lastModified": 1695738029,
        "narHash": "sha256-Z9c9Q41jMkj/DyXOiZYyIa7Gmn8VB8yauTyWrSsT+ps=",
        "owner": "hakimel",
        "repo": "reveal.js",
        "rev": "88fbfc5751ad01e3f6adee5819eabeb9e73c3757",
        "type": "github"
      },
      "original": {
        "owner": "hakimel",
        "repo": "reveal.js",
        "type": "github"
      }
    },
    "root": {
      "inputs": {
        "doom-emacs": "doom-emacs",
        "doom-snippets": "doom-snippets",
        "emacs-overlay": "emacs-overlay",
        "emacs-so-long": "emacs-so-long",
        "evil-escape": "evil-escape",
        "evil-markdown": "evil-markdown",
        "evil-org-mode": "evil-org-mode",
        "evil-quick-diff": "evil-quick-diff",
        "explain-pause-mode": "explain-pause-mode",
        "flake-compat": "flake-compat",
        "flake-utils": "flake-utils",
        "format-all": "format-all",
        "nix-straight": "nix-straight",
        "nixpkgs": "nixpkgs",
        "nose": "nose",
        "ob-racket": "ob-racket",
        "org": "org",
        "org-contrib": "org-contrib",
        "org-yt": "org-yt",
        "php-extras": "php-extras",
        "revealjs": "revealjs",
        "rotate-text": "rotate-text",
        "sln-mode": "sln-mode",
        "ts-fold": "ts-fold",
        "ws-butler": "ws-butler"
      }
    },
    "rotate-text": {
      "flake": false,
      "locked": {
        "lastModified": 1322962747,
        "narHash": "sha256-SOeOgSlcEIsKhUiYDJv0p+mLUb420s9E2BmvZQvZ0wk=",
        "owner": "debug-ito",
        "repo": "rotate-text.el",
        "rev": "48f193697db996855aee1ad2bc99b38c6646fe76",
        "type": "github"
      },
      "original": {
        "owner": "debug-ito",
        "repo": "rotate-text.el",
        "type": "github"
      }
    },
    "sln-mode": {
      "flake": false,
      "locked": {
        "lastModified": 1423727528,
        "narHash": "sha256-XqkqPyEJuTtFslOz1fpTf/Klbd/zA7IGpzpmum/MGao=",
        "owner": "sensorflo",
        "repo": "sln-mode",
        "rev": "0f91d1b957c7d2a7bab9278ec57b54d57f1dbd9c",
        "type": "github"
      },
      "original": {
        "owner": "sensorflo",
        "repo": "sln-mode",
        "type": "github"
      }
    },
    "systems": {
      "locked": {
        "lastModified": 1681028828,
        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
        "owner": "nix-systems",
        "repo": "default",
        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
        "type": "github"
      },
      "original": {
        "owner": "nix-systems",
        "repo": "default",
        "type": "github"
      }
    },
    "ts-fold": {
      "flake": false,
      "locked": {
        "lastModified": 1695278494,
        "narHash": "sha256-O4NcUC1u08W8ZslqoA/i+iTaLotKwheURXQWBxLLMFc=",
        "owner": "jcs-elpa",
        "repo": "ts-fold",
        "rev": "70b2c79ff4daa7351d4e2917b0343b9a18d4d4f2",
        "type": "github"
      },
      "original": {
        "owner": "jcs-elpa",
        "repo": "ts-fold",
        "type": "github"
      }
    },
    "ws-butler": {
      "flake": false,
      "locked": {
        "lastModified": 1634511126,
        "narHash": "sha256-c0y0ZPtxxICPk+eaNbbQf6t+FRCliNY54CCz9QHQ8ZI=",
        "owner": "hlissner",
        "repo": "ws-butler",
        "rev": "572a10c11b6cb88293de48acbb59a059d36f9ba5",
        "type": "github"
      },
      "original": {
        "owner": "hlissner",
        "repo": "ws-butler",
        "type": "github"
      }
    }
  },
  "root": "root",
  "version": 7
}

I don't have much experience with how nix flakes work, so I couldn't start debugging this myself.

Any help is appreciated.

Note

This is my first ever github issue, and I've literally spent 30 minutes on it!? If I haven't included enough information, please tell me.

You may be able to find the source of the CPU usage via:

Including a profiling report here may allow others to help out as well, if the reason wasn't plainly obvious.

It's also worth noting that this package is marked as broken, according to #556; I have no solution there, but it makes it difficult to ramp up as a new doom user.

We probably missed some nativecomp and it's doing that in the "background" trying to catch up. But yup, broken.

The bug mysteriously has been resolved.

The only hint I have is that when first launched, and left at the home page, Doom Emacs would take all the CPU and RAM it can. But once I started using it as slow as it was, it got to the normal, expected range.

Should I try to replicate the error for future reference? If not, I'll close this issue.

And thank you, @Dessix & @ckiee for your help.

I think there's no need. There's just a bunch of things that should be done at build that aren't, this issue can stay open as another note of that.