Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Actions and Events make heavy use of uncached reflection lookups #338

@cdupl

Description

@cdupl

Under a heavy volume of asterisk events, there is an observable performance impact stemming from heavy reflection use:

  • AbstractBuilder.setAttributes will always look up all setters for a type on every event construction. (18% of event build time)
  • Setter names in AbstractBuilder are further transformed (e.g. check for src, clazz), and run through ReflectionUtil.StripIllegalChars on each invocation. This field name transformation result is not cached. (15% of event build time)
  • ManagerConnectionImpl will invoke ManagerEvent.toString which by default will always look up all getters for a type on every invocation. (26% of event dispatch time)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions