wtfCreateScope
Create trace scope.
const wtfCreateScope: (signature: string, flags?: any) => WtfScopeFn;
Description
Scopes must be strictly nested and are analogous to stack frames, but do not have to follow the stack frames. Instead it is recommended that they follow logical nesting. You may want to use Event Signatures as they are defined in WTF.
Used to mark scope entry. The return value is used to leave the scope.
var myScope = wtfCreateScope('MyClass#myMethod(ascii someVal)');
someMethod() { var s = myScope('Foo'); // 'Foo' gets stored in tracing UI // DO SOME WORK HERE return wtfLeave(s, 123); // Return value 123 }
Note, adding try-finally block around the work to ensure that wtfLeave
gets called can
negatively impact the performance of your application. For this reason we recommend that
you don't add them to ensure that wtfLeave
gets called. In production wtfLeave
is a noop and
so try-finally block has no value. When debugging perf issues, skipping wtfLeave
, do to
exception, will produce incorrect trace, but presence of exception signifies logic error which
needs to be fixed before the app should be profiled. Add try-finally only when you expect that
an exception is expected during normal execution while profiling.