Skip to content

[EventDispatcher] Improve performance in "dev" environment #31970

@javiereguiluz

Description

@javiereguiluz

Description

The upcoming Symfony 5.0 release gives us once-in-a-two-years opportunity to improve things. I'd like to improve this: events/listeners take too much time in the "dev" environment.

Look at this profiling of the Symfony Demo app: https://blackfire.io/profiles/f35213c7-d5b5-4eb4-8315-4ad3f24ac9e9/graph

Some things that look "wrong":

  • Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher::getNotCalledListeners is the slowest part of the application and takes 15% of the total time.
  • Symfony\Component\EventDispatcher\Debug\WrappedListener::getWrappedListener is called 5,135 times
  • Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher::getListenerPriority is called 279 times

Can someone please take a look why this is so slow ... and see if we can improve it even if it requires making some minor breaking changes? Thanks!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions