-
Notifications
You must be signed in to change notification settings - Fork 2
Improve reflection performance via e.g., CreateDelegate() #90
Copy link
Copy link
Closed
Labels
Area: MappingRelates to one of the `ITopicMappingService` interfaces or implementations.Relates to one of the `ITopicMappingService` interfaces or implementations.Priority: 2Severity 2: MajorStatus 5: CompleteTask is considered complete, and ready for deployment.Task is considered complete, and ready for deployment.Type: ImprovementImproves the functionality or interface of an existing feature.Improves the functionality or interface of an existing feature.
Milestone
Metadata
Metadata
Assignees
Labels
Area: MappingRelates to one of the `ITopicMappingService` interfaces or implementations.Relates to one of the `ITopicMappingService` interfaces or implementations.Priority: 2Severity 2: MajorStatus 5: CompleteTask is considered complete, and ready for deployment.Task is considered complete, and ready for deployment.Type: ImprovementImproves the functionality or interface of an existing feature.Improves the functionality or interface of an existing feature.
Use
Delegate.CreateDelegate()(example, example, example) to create a delegate and cache it as part of e.g.,MemberDispatcher, if notTypeMemberInfoCollectionandMemberInfoCollection<>. This should dramatically improve performance.Ideally, this should be applied to
Topicclasses and model classes. ForTopicclasses, this needs to account forGet{Attribute}()methods as well as[AttributeSetter]and[ReferenceSetter]properties. For model classes, this needs to account for properties and constructors. These may be able to be handled by a single class, though they may be better served by specialized classes.