Epic #55065

Epic #55070: Workpackages

WP: Overall System Performance (Backend and Frontend)

Added by Ingo Schmitt almost 6 years ago. Updated about 2 years ago.

Should have
Target version:
Start date:
Due date:
% Done:


Estimated time:
(Total: 38.00 h)
Sprint Focus:


TYPO3 6.2 LTS will be used in enterprise environments as well as on budget hosting-environments. These systems will have a lot of content or many requests or even both.
In order to provide the necessary technical basis for those use cases, the overall performance of TYPO3 CMS must be in- creased. Also, the main performance of TYPO3 will be reviewed and optimized to get a faster system.


Story #55071: review current caching types and differentiate these typesClosed

Story #55072: implement compile time cacheClosed

Story #55073: review autoloader and language cacheClosed

Task #54990: ClassLoader cache ist too slow, no matter which CF Backend is usedClosed

Task #54984: "Clear all caches" makes the site unavailable for several secondsClosed

Story #55074: implement configuration cacheClosed

Story #55075: review TCA cache and increase performance and scalabilityClosed

Story #55076: review frontend rendering cache and rootline cacheClosed

Task #39295: Wrong expires date in cf_cache_pagesectionClosed

Story #55077: review bootstrap for ajax-calls and streamline processClosed

Story #55078: Optimize PHP code performance in TYPO3 methodsClosed

Task #54777: Use PHP native htmlspecialchars_decode()Closed

Task #54085: Replace all strcmp() calls with ===Closed

Task #54091: Use === operator instead of strlen() to check for zero length stringsClosed

Task #54265: Use (int) instead of intval() or (integer)ClosedJo Hasenau

Task #54560: Replace JavaScriptEncoder with json_encode()Closed

Task #55198: Replace trimExplode + foreach with explode + trim within foreachClosedJo Hasenau

Task #54525: Optimize file- and path functions in GeneralUtilityClosed

Task #55122: Cleanup and optimize methods in ExtensionManagementUtilityClosedMichiel Roos

Task #54734: Optimize ext_tables and ext_localconf cache filesClosed

Bug #52949: Speed decrease since 4.5Closed

Task #53029: Improve performance of the class loader ClosedThomas Maroschik

Task #53744: Change ClassLoader cache from proxy require files to standard cache backendsClosedThomas Maroschik

Task #53747: Change TCA cache from php code to serialized arrayClosedThomas Maroschik

Feature #52642: CF: Implement Simple db, apc & memcached backendClosed

Bug #53556: classLoader->loadClass calls requireOnce twice per classClosed

Bug #53918: t3skin calls addIconSprite for each languageClosed

Bug #53962: Class loader does not cache non existing classesClosed

Bug #53702: FAL fetches storages twice on every BE requestClosed

Task #54251: GeneralUtility::array_merge_recursive_overrule has bad performanceClosedMarkus Klein

Bug #53862: isValidUrl idna converts whole URI instead of domain onlyClosed

Bug #52125: Saving records takes ages to completeClosed

Bug #52235: Timeout when copying pages recursively due to cache-clearing overloadClosed

Bug #53598: Select/Delete fe_sessions twice per requestClosedAlexander Opitz

Bug #54982: Performance of eID-scripts in TYPO3 6.2ClosedAlexander Opitz

Bug #55022: PackageManager Cache is invalid if typo3 dir has symlinksClosedAlexander Opitz

Bug #56307: Findings from Bootstrap/PackageManager/ClassLoader analysesClosedSteffen Ritter

Bug #56308: ClassLoaderCache superflouousClosed

Bug #56310: The PackageManager checks every boot if all required packages are activeClosedThomas Maroschik

Bug #56311: PackageFactory does not need to be initialized on regular requestsClosedThomas Maroschik

Bug #56312: Dependency Resolver does not need to be initializedClosedBenni Mack

Bug #56313: Cache Identifiers shorten the MD5 hashClosed

Bug #56314: setCacheHashOptions from Bootstrap not relevant for EIDClosedBenni Mack

Bug #56315: Optimize TimeTracking init in eID CaseRejected

Bug #56316: inline BEUserAuth::getCookieNameClosedThomas Maroschik

Bug #56317: Cache Local and Default Configuration to prevent duplicate File AccessRejected

Bug #56318: Check wether the ConfigurationManager can be omitted/reduced for the purpose of what the Boostrap really needs from thatClosed

Bug #56319: Merge Cache/Cache and CacheFactory into CacheManagerClosed

Bug #56320: Check emptying the Flow Classes as far as possibleRejected

Bug #56322: GetAliasesForClass not usedClosed

Bug #56323: cache_classes should cluster by Package instead of ClassClosed

Bug #56324: Class Loader should not try to runtime resolve class-pathesClosed

Bug #56325: Move "finalClassNameCache" from GeneralUtility to ClassLoaderClosed

Bug #56326: Evaluate and Merge ClassAliasMap into Classloader classRejected

Bug #56328: Extract complex "class loader cache building" code into ClassLoadingInformationFactoryClosed

Bug #56330: Add all classes which are needed anyhow within the minimal Bootstrap to the require list in system environment builderRejected

Bug #56331: Evaluate if we can profit from concatenate all baseRequiredClasses into one fileClosed

Bug #56333: MicroOptimize ClassLoaderClosed

Bug #56334: Prevent inclusion of LogLevel due to ConfigDefault referralRejected

Bug #56335: Prevent Inclusion of ResourceStorage from BootstrapClosedThomas Maroschik

Bug #56336: Prevent Inclusion of MediaWizardProvider* in Base BootstrapClosed

Bug #56337: Remove manual array calculation in Locales and put the arrays to the class directlyClosed

Bug #56340: Remove the VariableFrontend from requiredBaseClassesClosed

Task #56341: Evaluate if it is really reasonable to have TYPO3\CMS\Core\Compatibility\LoadedExtensionsArrayClosedSteffen Ritter

Task #56538: Cache the $GLOBALS['TYPO3_LOADED_EXT'] as an arrayClosedThomas Maroschik

Bug #56933: Cached class loader misses are not considered on retrievalClosedThomas Maroschik

Task #56934: Move information in Package classes into composer filesClosedThomas Maroschik

Story #57862: Add possibility to make all TCA additions cachedClosed

Task #57863: Introduce a signal in ExtensionManagementUtility::loadBaseTcaClosed

Task #57881: Make category TCA changes cacheableClosed

Task #57942: Provide API to add cached TCA changesClosed

Bug #23069: Bottleneck in t3lib_tcemainClosed

Task #55179: Optimize SQL PerformanceClosed

Bug #55180: Increase Determination of siteroot pageClosedIngo Schmitt

Bug #55181: Speedup domain redirection lookupClosedIngo Schmitt

Bug #55182: Speedup selection of storageClosedIngo Schmitt

Bug #55184: Filling the entries from sys_registry does not use an indexClosedIngo Schmitt

Feature #27372: Execute native prepared queries in t3lib_DBClosedXavier Perseguers

Bug #24960: Rewrite t3lib_loadModules::getRelativePath()Rejected

Task #55578: DocumentationClosed

Epic #55656: Optimize overall Extbase performanceClosed

Task #55654: Extbase: Optimize ClassInfoFactory with the ClassInfoCacheClosedMarc Bastian Heinrichs

Story #55168: Optimize Extbase generic persistenceClosedFelix Oertel

Task #55167: Extbase: avoid parseQuery() / buildQuery() to be called multiple timesClosedFelix Oertel

Task #55661: Add functional tests for extbase persistenceClosedFelix Oertel

Task #57173: Use of cf_extbase_typo3dbbackend_queries results in fatalClosedXavier Perseguers

Task #57130: Extbase Queries with NULL comparison don't work anymoreClosed

Task #57104: Regression: Query building fails for LazyObjectStorageClosed

Task #57263: Typo3DbQueryParser does not handle LowerCaseInterface correctlyClosedFelix Oertel

Task #57338: Make Typo3DbQueryParser SingletonClosed

Task #55169: Extbase: fetch child objects in one queryRejectedFelix Oertel

Feature #60460: Refactor lazyLoading handling in extbaseClosedFelix Oertel

Task #53514: Extbase: DataMapper causes redundant queriesClosedNico de Haen

Task #55360: Extbase: use preparedStatement in generic persistenceClosedFelix Oertel

Task #57067: Follow-Up re-use preparedStatement objectRejectedFelix Oertel

Task #57254: Fix usage of own prepared statement object in $query->statementClosed

Task #56979: Add setting for DataMapper to enable preparedStatementsClosed

Task #59917: User Repositories in internal persistence logicRejectedFelix Oertel

Story #54567: Extbase: overall performance of backend modulesClosedFelix Oertel

Task #54571: Extbase: Avoid TS parsing in BE if not necessaryClosedFelix Oertel

Task #55653: belog: cache the beusers usernameClosed

Feature #48960: Extbase: Backport lazy dependency injectionRejectedMarc Bastian Heinrichs

Story #55079: review Extbase caching for frontend and backendClosed

Task #55044: Make Extbase use cache group "pages"ClosedBenni Mack

Task #54701: Cache global TypoScript template in backendClosedFelix Oertel

Task #57594: Optimize ReflectionService Cache handlingClosedMarc Bastian Heinrichs

Feature #81389: Injected ReflectionService without call to initialize/shutdownClosed

Task #54605: Inject annotations should not be used by core (~5% performance)ClosedMarc Bastian Heinrichs

Task #56108: Cleanup \TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList and friendsClosed

Task #56109: Cleanup \TYPO3\CMS\Lang\LanguageServiceClosed

Task #56110: IconUtility::getSpriteIcon() needs a cacheClosed

Bug #58357: Superfluous SQL queries on copying recordsClosedOliver Hader

Bug #59587: Performance killer: APC cache backend, wrong assignment of cache tagsClosedAlexander Opitz

Related issues

Related to TYPO3 Core - Feature #17085: HTTP GET 'If-Modified-Since' ignored Closed 2007-03-06
Related to TYPO3 Core - Bug #56354: Speed up updating the extension list Closed 2014-02-26


#1 Updated by Ingo Schmitt almost 6 years ago

  • Estimated time set to 400.00 h
  • Parent task set to #55070

#2 Updated by Mathias Schreiber about 4 years ago

  • Target version deleted (6.2.0)

#3 Updated by Benni Mack about 2 years ago

  • Status changed from New to Closed

Also available in: Atom PDF