mirror of
https://github.com/status-im/react-native.git
synced 2025-01-28 18:25:06 +00:00
Log timer identifiers in systrace
Reviewed By: davidaurelio Differential Revision: D3819518 fbshipit-source-id: 98e9ed4af93c9c02f4bb8d9152b19556566b81f1
This commit is contained in:
parent
66ce1297c2
commit
a1f31d12fd
@ -15,6 +15,7 @@
|
||||
// in dependencies. NativeModules > BatchedBridge > MessageQueue > JSTimersExecution
|
||||
const RCTTiming = require('NativeModules').Timing;
|
||||
const JSTimersExecution = require('JSTimersExecution');
|
||||
const parseErrorStack = require('parseErrorStack');
|
||||
|
||||
// Returns a free index if one is available, and the next consecutive index otherwise.
|
||||
function _getFreeIndex(): number {
|
||||
@ -31,6 +32,14 @@ function _allocateCallback(func: Function, type: $Keys<typeof JSTimersExecution.
|
||||
JSTimersExecution.timerIDs[freeIndex] = id;
|
||||
JSTimersExecution.callbacks[freeIndex] = func;
|
||||
JSTimersExecution.types[freeIndex] = type;
|
||||
if (__DEV__) {
|
||||
const e = (new Error() : any);
|
||||
e.framesToPop = 1;
|
||||
const stack = parseErrorStack(e);
|
||||
if (stack) {
|
||||
JSTimersExecution.identifiers[freeIndex] = stack.shift();
|
||||
}
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
|
@ -46,6 +46,7 @@ const JSTimersExecution = {
|
||||
timerIDs: [],
|
||||
immediates: [],
|
||||
requestIdleCallbacks: [],
|
||||
identifiers: ([] : [{methodName: string}]),
|
||||
|
||||
errors: (null : ?[Error]),
|
||||
|
||||
@ -78,6 +79,11 @@ const JSTimersExecution = {
|
||||
return;
|
||||
}
|
||||
|
||||
if (__DEV__) {
|
||||
const identifier = JSTimersExecution.identifiers[timerIndex] || {};
|
||||
Systrace.beginEvent('Systrace.callTimer: ' + identifier.methodName);
|
||||
}
|
||||
|
||||
// Clear the metadata
|
||||
if (type === JSTimersExecution.Type.setTimeout ||
|
||||
type === JSTimersExecution.Type.setImmediate ||
|
||||
@ -113,6 +119,10 @@ const JSTimersExecution = {
|
||||
JSTimersExecution.errors.push(e);
|
||||
}
|
||||
}
|
||||
|
||||
if (__DEV__) {
|
||||
Systrace.endEvent();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
@ -228,6 +238,7 @@ const JSTimersExecution = {
|
||||
JSTimersExecution.timerIDs[i] = null;
|
||||
JSTimersExecution.callbacks[i] = null;
|
||||
JSTimersExecution.types[i] = null;
|
||||
JSTimersExecution.identifiers[i] = null;
|
||||
},
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user