Hyper: Hyper causing high CPU usage by WMI Provider Host

Created on 15 Sep 2017  ·  8Comments  ·  Source: vercel/hyper

On Windows 10 Professional: after the last Hyper update, launching Hyper causes the WMI Provider Host process to spike its CPU usage, up to 53% (as far as I have observed). This causes the PC to become unresponsive at the UI level.
Steps to reproduce:

  • Launch Task Manager
  • Find WMI Provider Host in the Processes tab
  • In normal conditions, its CPU usage should be between 1% and 3%
  • Launch Hyper
  • See WMI Provider Host increase its CPU usage quickly
  • Close Hyper
  • See WMI Provider Host gradually decrease its CPU usage back to 1-3%
    -
    Hyper 1.4.4
    Electron 1.7.6
    win32 x64 10.0.15063
Performance Windows

Most helpful comment

@Stanzilla as @chabou said, I reported the issue from the app's own menu, I wasn't presented the template text when I did that.

I've tested the plugins one by one, seems like it's Hyperline the one at fault. It seems also that when I add Hyperline to the plugins, it causes Hyper to spawn several instances of conhost.exe, by several I mean a good two dozens. I don't know if it's related or a separate issue of the same plugin.

All 8 comments

Do you use hyperpower plugin?
Can you give us your config?

No, I don't use the hyperpower plugin, the plugins I installed are hyperline, hyperterm-material, hyper-tabs-enhanced, hyperlinks

Here's my .hyper.js:

// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.

module.exports = {
  config: {
    // default font size in pixels for all tabs
    fontSize: 16,

    // font family with optional fallbacks
    fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',

    // terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
    //cursorColor: 'rgba(248,28,229,0.8)',
    cursorColor: 'rgba(63,191,63,0.8)',

    // `BEAM` for |, `UNDERLINE` for _, `BLOCK` for █
    cursorShape: 'BLOCK',

    // set to true for blinking cursor
    cursorBlink: true,

    // color of the text
    foregroundColor: 'lightCyan',

    // terminal background color
    backgroundColor: '#000',

    // border color (window, tabs)
    borderColor: '#333',

    // custom css to embed in the main window
    css: '',

    // custom css to embed in the terminal window
    termCSS: '',

    // set to `true` (without backticks) if you're using a Linux setup that doesn't show native menus
    // default: `false` on Linux, `true` on Windows (ignored on macOS)
    showHamburgerMenu: '',

    // set to `false` if you want to hide the minimize, maximize and close buttons
    // additionally, set to `'left'` if you want them on the left, like in Ubuntu
    // default: `true` on windows and Linux (ignored on macOS)
    showWindowControls: '',

    // custom padding (css format, i.e.: `top right bottom left`)
    padding: '12px 14px',

    // the full list. if you're going to provide the full color palette,
    // including the 6 x 6 color cubes and the grayscale map, just provide
    // an array here instead of a color map object
    colors: {
      black: '#000000',
      red: '#ff0000',
      green: '#33ff00',
      yellow: '#ffff00',
      blue: '#0066ff',
      magenta: '#cc00ff',
      cyan: '#00ffff',
      white: '#d0d0d0',
      lightBlack: '#808080',
      lightRed: '#ff0000',
      lightGreen: '#33ff00',
      lightYellow: '#ffff00',
      lightBlue: '#0066ff',
      lightMagenta: '#cc00ff',
      lightCyan: '#00ffff',
      lightWhite: '#ffffff'
    },

    // the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
    // if left empty, your system's login shell will be used by default
    // make sure to use a full path if the binary name doesn't work
    // (e.g `C:\\Windows\\System32\\bash.exe` instead of just `bash.exe`)
    // if you're using powershell, make sure to remove the `--login` below
    shell: '',

    // for setting shell arguments (i.e. for using interactive shellArgs: ['-i'])
    // by default ['--login'] will be used
    shellArgs: ['--login'],

    // for environment variables
    env: {},

    // set to false for no bell
    bell: 'SOUND',

    // if true, selected text will automatically be copied to the clipboard
    copyOnSelect: false,

    // if true, on right click selected text will be copied or pasted if no
    // selection is present (true by default on Windows)
    // quickEdit: true

    // URL to custom bell
    // bellSoundURL: 'http://example.com/bell.mp3',

    // for advanced config flags please refer to https://hyper.is/#cfg

    //hyper-tabs-enhanced configuration
    hyperTabs:{
      trafficButtons: true,
      border: true,
      tabIconsColored: true,
    }
  },

  // a list of plugins to fetch and install from npm
  // format: [@org/]project[#version]
  // examples:
  //   `hyperpower`
  //   `@company/project`
  //   `project#1.0.1`
  plugins: ['hyperline', 'hyperterm-material', 'hyper-tabs-enhanced', 'hyperlinks'],

  // in development, you can create a directory under
  // `~/.hyper_plugins/local/` and include it here
  // to load it and avoid it being `npm install`ed
  localPlugins: []
};

@LoZeno can you test those plugins one by one to see which one causes it? Also please don't ignore the issue template text.

@Stanzilla It didn't ignore template text, he used "Report issue" in Hyper menu. We need to improve that. We can maybe output config directly etc...

@Stanzilla as @chabou said, I reported the issue from the app's own menu, I wasn't presented the template text when I did that.

I've tested the plugins one by one, seems like it's Hyperline the one at fault. It seems also that when I add Hyperline to the plugins, it causes Hyper to spawn several instances of conhost.exe, by several I mean a good two dozens. I don't know if it's related or a separate issue of the same plugin.

Hyperline is polling processes like git using the shell (afaik), that's why you saw those processes being spammed up. I recommend you to not use this plugin if you're concerned about that (I am 😄 ) @LoZeno

Yeah i can confirm that it was Hyperline, i was looking at my CPU usage during the removal of this plugin and the chart went from 100% to 10%

You should open an issue about that in https://github.com/Hyperline/hyperline 👍

edit: looks like they're tracking it here: https://github.com/Hyperline/hyperline/issues/124

Was this page helpful?
0 / 5 - 0 ratings

Related issues

yvan-sraka picture yvan-sraka  ·  3Comments

hxnt picture hxnt  ·  3Comments

juicygoose picture juicygoose  ·  3Comments

aem picture aem  ·  3Comments

legomushroom picture legomushroom  ·  3Comments