Project

General

Profile

Actions

Bug #76985

closed

BackendUtility::getRecordTitle() method slows down system if record is localizable

Added by André Wuttig about 8 years ago. Updated almost 6 years ago.

Status:
Closed
Priority:
Must have
Assignee:
-
Category:
FormEngine aka TCEforms
Target version:
-
Start date:
2016-07-07
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
7
PHP Version:
5.5
Tags:
FormEngine
Complexity:
hard
Is Regression:
No
Sprint Focus:

Description

We detected that, if the TCA for a table is configured for localization like:

'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l18n_parent',
'transOrigDiffSourceField' => 'l18n_diffsource',

the getRecordTitle() of the TYPO3\CMS\Backend\Utility\BackendUtility class will be called very often while you edit a single record. We found out that this just happens if the record is enabled for localization.

The AbstractItemProvider is responsible for this behaviour. It calls some strange things in addItemsFromForeignTable() method.

In the end we can see that during the edit of one record the FormEngine makes getRecordTitle for each other record in the sysfolder or page where the single record is located.

If you have maybe 500 Records in this sysfolder and use label_userFunc this could lead to massive performance problems.


Files

cachegrind.jpg (26.5 KB) cachegrind.jpg Cachegrind results Markus Klein, 2016-07-12 11:06

Related issues 1 (0 open1 closed)

Related to TYPO3 Core - Bug #77045: FormEngine extremely slow due to Doctrine changesClosedMorton Jonuschat2016-07-11

Actions
Actions

Also available in: Atom PDF