-
Notifications
You must be signed in to change notification settings - Fork 668
Trace thread local performance refactor #9620
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Trace thread local performance refactor #9620
Conversation
| else | ||
| { | ||
| var val = traceRet[TRACE_KEY]; | ||
| newTraceData.Data = val; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So in the case of ret being null, it looks like earlier newTraceData.Data was also being set to null. Now that there's an else condition, is that no longer the case?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like newTraceData.Data should always be null as you arrive here. Setting to null would be unnecessary.
| @@ -1,98 +0,0 @@ | |||
| using System; | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should obsolete this class and not remove it yet just so we don't break the API for binary compatibility and make a note to remove this in 3.0.
|
Closing this in favor of #9665 |
Purpose
The purpose of this PR is move the backing implementation in
TraceUtilsfrom a thread data slot to a thread relative static field per Microsofts recommendations for performance.. This backing implementation is the data mechanism the VM utilizes to send information to and receive information from the zero-touch and NodeModel nodes invoked function contexts outside of the typical input parameters and return values. This PR does not relate to the other half of trace which is the serialization/deserialization of trace data to/from the .DYN file nor the data structure in the VM that keeps track of the current trace values per CallSite. This PR does not change the public API's in DynamoService for use of trace with a Node (ieGetTraceDataandSetTraceData). It does however simplify the internal methods utilized within the VM to set, get, and clear trace.Declarations
Check these if you believe they are true
*.resxfilesReviewers
(FILL ME IN) Reviewer 1 (If possible, assign the Reviewer for the PR)
(FILL ME IN, optional) Any additional notes to reviewers or testers.
FYIs
(FILL ME IN, Optional) Names of anyone else you wish to be notified of