Use V8 JavaScriptStackTraceApi to find log origin #12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
_getOrigin
method is extremely slow because regular expression is used to parse stack string. I've created a simple app: bristol-test to prove the point and observed that even only 30 calls tobristol.log
under heavy load can slow the app 10 times.In this PR I'm using
JavaScriptStackTraceApi
to get array ofCallSite
objects what allows to find a log call origin much faster. OverwritingError.prepareStackTrace
function looks bad but it's the only way to make this method faster. I'm switching to the originalError.prepareStackTrace
function at the end of this method.bristol-test results for 2000 request (200 concurent requests):
JavaScriptStackTraceApi
method