Rocket.chat.electron: Disk usage increases significantly when dragging client #19799 #19800

Created on 8 Dec 2020  路  8Comments  路  Source: RocketChat/Rocket.Chat.Electron

Description:

Install rocket chat as a windows app. Move window around. You will see that the window stutters slightly and in Taskmanager you will see an increased disk usage when moving the window.

(My guess is that the window position triggers some handler that writes back logs or tracking things...)

Steps to reproduce:

  1. Install Rocket Chat
  2. Open Rocket Chat
  3. Open Task Manager
  4. Move window slightly and check for increased disk usage.

Expected behavior:

No tracking of window location AND no disk usage when dragging the window.

Actual behavior:

Lagging, up to 3MB/s disk usage when moving.

Client Setup Information

  • Desktop App
  • Operating System: Windows 10

Server Setup Information

Does not belong here, its a client only issue

Version of Rocket.Chat Server

Does not belong here, its a client only issue

Screenshot 2020-12-08 102327

All 8 comments

I don't know. Did try to reproduce that issue without luck.
In my case disk load was grow up a little bit to 0.5MB/s when I moved application up and down.
RC Electron app version 3.0.7 on Windows 10 1809

Okay, even 0.5 MB/s seem like a lot of data to me for simply dragging the client, what do you think?

I would expect zero mb/s unless there is a feature that relies on this behavior

Within %appdata%/Rocket.Chat there is a config.json which contains this.

    "rootWindowState": {
        "focused": false,
        "visible": true,
        "maximized": false,
        "minimized": false,
        "fullscreen": false,
        "normal": true,
        "bounds": {
            "x": 30,
            "y": 302,
            "width": 1000,
            "height": 584
        }
    }

When dragging the window i see a lot of temporary config files being created and flickering. I guess thats related to the bounds within the json. The is most likely an event handler which updates that json on window move

I did a small screenrecording for reproducing the issue:

2020-12-09 11-55-08_Trim.zip

We see this issue as well with 3.0.7 (on Win10).

If you look in perfmon you see dozens of config.json.tmpXXXX files appearing.

Also see this in perfmon:

Clipboard01

This client has various performance issues, Resizing window also causes my CPU usage to 100% for few seconds
Version 3.1

This happens to me as well on Windows, using version 3.1.1. When I drag the window, it is extremely laggy, and when I look in the task manager it uses one CPU core to the maximum and writes stuff to disk (about 0.7 Mb per second). Sometimes it seems to drag smoothly, and then eventually freezes completely, maxing out CPU, similarly to https://github.com/RocketChat/Rocket.Chat.Electron/issues/1605

I tried disabling GPU, can't tell yet if freezing occurs in this mode but dragging is still laggy compared to other apps. (not sure how to enable GPU back tho)

Came across this issue as I experienced dragging a window felt like a Win95 laggolicious throwback. When you combine the increase in disk I/O with this AV like McAfee - it may even make the experience even worse.

Is there a way to drop writing to the config file _during_ the move and have it write an update on a onMoveEnd type of event? That would certainly cut down on disk I/O and potentially resolve the issue

Update: I found a moved event on the Electron docs, but it's an alias to move. Could this still be accomplished by setting a timeout that checks the coordinates, if they are the same as when the callback was queued, then commit to writing the state change to the file?

Was this page helpful?
0 / 5 - 0 ratings