Task #9568

Improve speed of AOP proxy building / reflection

Added by Robert Lemke almost 5 years ago. Updated over 3 years ago.

Status:Resolved Start date:2010-09-02
Priority:Should have Due date:
Assigned To:Robert Lemke % Done:

100%

Category:-
Target version:TYPO3 Flow Base Distribution - 1.1
Sprint: Has patch:No
PHP Version: Complexity:hard

Description

The process of AOP proxy building and the extensive use of relfection has slowed down FLOW3 immensely, especially in Development context.

There are several possible measures to make it faster again - on the one hand in the proxy building mechanism itself, but also in the ReflectionService.

The initialization of the AOP framework currently takes 96% of the overall script execution time (ie. 11,0145364 seconds in my test case).

We should bring this below 2 seconds for the following scenario:

- TYPO3 base distribution
- one change in a single class (e.g. a controller)
- next hit should be below 2 secs.

Associated revisions

Revision 962d2be2
Added by Robert Lemke almost 5 years ago

[~TASK] FLOW3: Doubled speed of proxy building in Development context

Improved speed of getInterfaceNamesImplementedByClass() in the Reflection
Service by using PHP's native function. Previously array_search was
called more than 4,000,000 times in this method.

This is not a real solution, but at least a quick relief. We need to
take more measures and do more profiling as outlined in the related
issue.

Relates to: #9568

Change-Id: If6bce5c386b6b8ce1c51ec4a49386c69bdfc1560

Revision 9c3a9dca
Added by Robert Lemke almost 4 years ago

[TASK] Optimized AOP Pointcut Filter matching

This change set greatly reduces compilation time for AOP proxies for
applications intensively using AOP and security policies. It is a quick
fix rather than the ultimate solution.

Class name and method name matching have been simplified, matching
against annotations does not support regular expressions any more
(wasn't supported officially anyway) and the order of a few point cut
expressions has been optimized.

Related: #9568
Releases: 1.0, 1.1

Change-Id: I783d6052802b5bcc7cd48b1f4e2d9335bbc99612

Revision 66df0697
Added by Robert Lemke almost 4 years ago

[TASK] Optimized AOP Pointcut Filter matching

This change set greatly reduces compilation time for AOP proxies for
applications intensively using AOP and security policies. It is a quick
fix rather than the ultimate solution.

Class name and method name matching have been simplified, matching
against annotations does not support regular expressions any more
(wasn't supported officially anyway) and the order of a few point cut
expressions has been optimized.

Change-Id: Ib2350f02fa5dcbda5dda9337b1cab54714958c16
Related: #9568
Releases: 1.0, 1.1

Revision 38c3c8e7
Added by Andreas Förthner over 3 years ago

[FEATURE] Optimize AOP proxy building

This simply makes AOP proxy building a lot faster.

Change-Id: I55a9bc34edba10539ef2df548e2bd0958fc15f07
Resolves: #9568
Resolves: PHX-72
Releases: 1.1

History

#1 Updated by Karsten Dambekalns almost 5 years ago

  • Target version changed from 1.0 alpha 12 to 1.0 alpha 13

#2 Updated by Karsten Dambekalns over 4 years ago

  • Target version changed from 1.0 alpha 13 to 1.0 alpha 14

#3 Updated by Karsten Dambekalns almost 4 years ago

  • Target version changed from 1.0 alpha 14 to 1230

#4 Updated by Karsten Dambekalns almost 4 years ago

  • Target version deleted (1230)

#5 Updated by Robert Lemke almost 4 years ago

  • Target version set to 1.1
  • Has patch set to No

#6 Updated by Robert Lemke almost 4 years ago

  • Complexity set to hard

#7 Updated by Gerrit Code Review over 3 years ago

  • Status changed from Accepted to Under Review

Patch set 8 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9623

#8 Updated by Gerrit Code Review over 3 years ago

Patch set 9 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9623

#9 Updated by Gerrit Code Review over 3 years ago

Patch set 12 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9623

#10 Updated by Gerrit Code Review over 3 years ago

Patch set 13 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9623

#11 Updated by Gerrit Code Review over 3 years ago

Patch set 14 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9623

#12 Updated by Gerrit Code Review over 3 years ago

Patch set 15 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9623

#13 Updated by Gerrit Code Review over 3 years ago

Patch set 16 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9623

#14 Updated by Gerrit Code Review over 3 years ago

Patch set 17 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9623

#15 Updated by Gerrit Code Review over 3 years ago

Patch set 18 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9623

#16 Updated by Gerrit Code Review over 3 years ago

Patch set 19 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9623

#17 Updated by Gerrit Code Review over 3 years ago

Patch set 20 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9623

#18 Updated by Andreas Förthner over 3 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100

Also available in: Atom PDF