-
Notifications
You must be signed in to change notification settings - Fork 636
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
Trace thread local performance refactor #9620
Conversation
{ | ||
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
TraceUtils
from 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 (ieGetTraceData
andSetTraceData
). 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
*.resx
filesReviewers
(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