Skip to content

Conversation

@manodasanW
Copy link
Member

  • Reduce use of linq expressions and replace them with reflection as our uses of linq expressions were found to have a significant initial cost possibly due to its internal initialization which the replacements don't seem to have. In addition, comparing the over time performance after the initial call with some scenarios don't seem to show a regression in performance.
  • Reorder the logic in GUID generation in order of expense to avoid unnecessary cost.
  • For IsIReferenceArray, do a type check instead of full name check as the full name cost was showing up in traces and type checks should be faster.
  • Improve the generic nullable scenario to reduce allocating objects and reduce the time spent jitting different generic versions of nullable.
  • As part of our lazy replacement, we generated Make functions along with properties to retrieve them. These were also done for the ones which reuse inner as is when they were not needed. Removing those and making those properties directly refer to inner instead.
  • Replace a couple more .Guid calls which were showing up on traces as GetCustomAttribute calls with equivalent hard coded values.

@manodasanW manodasanW merged commit 26c049a into master Feb 23, 2022
@manodasanW manodasanW deleted the manodasanw/typefactory branch February 23, 2022 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants