Project

General

Profile

Actions

Bug #91257

open

Serious performance issues due to detached DOM nodes

Added by Andreas Kienast over 4 years ago. Updated over 1 year ago.

Status:
New
Priority:
Must have
Assignee:
-
Category:
Performance
Target version:
-
Start date:
2020-05-01
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
10
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:
On Location Sprint

Description

The TYPO3 backend suffers from heavy performance issues. Using the backend for ~1 hour made it really unusable, as the browser's garbage collection kicks in after every second click and occupies more and more time and blocks the browser from doing its work.

After creating a few heap snapshots I found out we create a lot of detached DOM nodes.

For explanation: a detached DOM node is a node referenced in JavaScript, but not rendered the actual DOM. Such references don't get removed and occupy memory over time.
In DebugConsole, for example, the nodes are created but not rendered initially: https://github.com/TYPO3/TYPO3.CMS/blob/master/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/DebugConsole.ts#L115

I've created several screenshots of the profiles, the only thing I did is opening the EditDocumentController for different content elements multiple times and closing them again and browsing in the page tree.

Since the snapshot files are too large to be attached in Forge, I've uploaded them to Google Drive: https://drive.google.com/open?id=1-XiCT13VlWbNBfIY-QrgAbTpta54MpEA


Files

heap_1.png (326 KB) heap_1.png Snapshot 1 Andreas Kienast, 2020-05-01 15:41
heap_2.png (349 KB) heap_2.png Snapshot 2 Andreas Kienast, 2020-05-01 15:41
heap_3.png (343 KB) heap_3.png Snapshot 3 Andreas Kienast, 2020-05-01 15:41
closure_size.png (43.2 KB) closure_size.png Oliver Hader, 2020-05-01 17:43
closure_details.png (84.7 KB) closure_details.png Oliver Hader, 2020-05-01 17:43

Updated by Oliver Hader over 4 years ago

In my environment memory consumption on detached nodes is not that high... but closure and object stack is (see screenshots) e.g. referring to ShortcutMenu or t3-topbar-update..

Actions #2

Updated by Riccardo De Contardi almost 4 years ago

  • Category set to Performance
Actions #3

Updated by Benni Mack over 1 year ago

  • Sprint Focus set to On Location Sprint
Actions

Also available in: Atom PDF