2019-10-02 23:06:13 +08:00
|
|
|
## Memory leaks
|
|
|
|
|
2020-07-17 19:27:19 +08:00
|
|
|
Element usually emits slow behaviour just before it is about to crash. Getting a
|
2019-10-02 23:06:13 +08:00
|
|
|
memory snapshot (below) just before that happens is ideal in figuring out what
|
|
|
|
is going wrong.
|
|
|
|
|
|
|
|
Common symptoms are clicking on a room and it feels like the tab froze and scrolling
|
|
|
|
becoming jumpy/staggered.
|
|
|
|
|
|
|
|
If you receive a white screen (electron) or the chrome crash page, it is likely
|
|
|
|
run out of memory and it is too late for a memory profile. Please do report when
|
|
|
|
this happens though so we can try and narrow down what might have gone wrong.
|
|
|
|
|
|
|
|
## Memory profiles/snapshots
|
|
|
|
|
|
|
|
When investigating memory leaks/problems it's usually important to compare snapshots
|
2020-07-17 19:27:19 +08:00
|
|
|
from different points in the Element session lifecycle. Most importantly, a snapshot
|
2019-10-02 23:06:13 +08:00
|
|
|
to establish the baseline or "normal" memory usage is useful. Taking a snapshot
|
2020-07-17 19:27:19 +08:00
|
|
|
roughly 30-60 minutes after starting Element is a good time to establish "normal"
|
2019-10-02 23:06:13 +08:00
|
|
|
memory usage for the app - anything after that is at risk of hiding the memory leak
|
|
|
|
and anything newer is still in the warmup stages of the app.
|
|
|
|
|
|
|
|
**Memory profiles can contain sensitive information.** If you are submitting a memory
|
2020-07-17 19:27:19 +08:00
|
|
|
profile to us for debugging purposes, please pick the appropriate Element developer and
|
2019-10-02 23:06:13 +08:00
|
|
|
send them over an encrypted private message. *Do not share your memory profile in
|
|
|
|
public channels or with people you do not trust.*
|
|
|
|
|
|
|
|
### Taking a memory profile (Firefox)
|
|
|
|
|
|
|
|
1. Press CTRL+SHIFT+I (I as in eye).
|
|
|
|
2. Click the Memory tab.
|
|
|
|
3. Press the camera icon in the top left of the pane.
|
|
|
|
4. Wait a bit (coffee is a good option).
|
|
|
|
5. When the save button appears on the left side of the panel, click it to save the
|
|
|
|
profile locally.
|
|
|
|
6. Compress the file (gzip or regular zip) to make the file smaller.
|
|
|
|
7. Send the compressed file to whoever asked for it (if you trust them).
|
|
|
|
|
|
|
|
While the profile is in progress, the tab might be frozen or unresponsive.
|
|
|
|
|
|
|
|
### Taking a memory profile (Chrome/Desktop)
|
|
|
|
|
|
|
|
1. Press CTRL+SHIFT+I (I as in eye).
|
|
|
|
2. Click the Memory tab.
|
2020-07-17 19:27:19 +08:00
|
|
|
3. Select "Heap Snapshot" and the app.element.io VM instance (not the indexeddb one).
|
2019-10-02 23:06:13 +08:00
|
|
|
4. Click "Take Snapshot".
|
|
|
|
5. Wait a bit (coffee is a good option).
|
|
|
|
6. When the save button appears on the left side of the panel, click it to save the
|
|
|
|
profile locally.
|
|
|
|
7. Compress the file (gzip or regular zip) to make the file smaller.
|
|
|
|
8. Send the compressed file to whoever asked for it (if you trust them).
|
|
|
|
|
|
|
|
While the profile is in progress, the tab might be frozen or unresponsive.
|