wireapp / wire-desktop

:computer: Wire for desktop
https://wire.com/download/
GNU General Public License v3.0
1.07k stars 234 forks source link

Program lags as chat history grows #1659

Open bryc opened 6 years ago

bryc commented 6 years ago

What steps will reproduce the problem?

  1. Talk for a while, build up a long chat history without closing the program.

What is the expected result?

CPU usage and lag should remain the same as a fresh start of the program.

What is the actual result?

The program gradually starts to slow down (less responsive) as the chat history grows and the CPU usage increases whenever the main window is open. For example, key strokes aren't immediately displayed in the UI and have a slower update rate on screen when holding a key for example.

This problem has existed for a very long time in Wire.

I have confirmed this behavior on Windows 7 and Windows 10 using the Desktop version. It is bound to CPU speed.

A manual or automatic 'message hide' would be ideal to work around this.

ghost commented 6 years ago

Noticeable on Linux as well.

coolstory2048 commented 4 years ago

Most other chat programs automatically 'hide' older messages in a conversation once a threshold is reached, usually around 50 or so messages, and the program basically keeps a rolling counter where only the most recent 50 messages are available scrolling up, while the rest of the conversation remains 'hidden' away. I am thoroughly disappointed that wire doesn't have a functionality this basic to a chat program already implemented.

It becomes essentially impossible to use this program for any length of time because of such a serious and simple issue, imagine if you've had a conversation with someone for months on end, and now you've got 10,000 messages all loaded into the chat's memory at once? This is ridiculous. You're basically forced to chat until the program slows down to a crawl, and constantly kill the app and restart it on a daily basis, sometimes even more frequently, depending on usage. This basically kills the app, completely.