mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 21:35:39 +00:00
bug 1096666 - measure time spent in each compartment r=billm
This commit is contained in:
parent
3832b950cd
commit
17b8b79073
@ -51,6 +51,7 @@ JSCompartment::JSCompartment(Zone *zone, const JS::CompartmentOptions &options =
|
||||
#endif
|
||||
global_(nullptr),
|
||||
enterCompartmentDepth(0),
|
||||
totalTime(0),
|
||||
data(nullptr),
|
||||
objectMetadataCallback(nullptr),
|
||||
lastAnimationTime(0),
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include "vm/GlobalObject.h"
|
||||
#include "vm/PIC.h"
|
||||
#include "vm/SavedStacks.h"
|
||||
#include "prmjtime.h"
|
||||
|
||||
namespace js {
|
||||
|
||||
@ -166,10 +167,22 @@ struct JSCompartment
|
||||
js::ReadBarrieredGlobalObject global_;
|
||||
|
||||
unsigned enterCompartmentDepth;
|
||||
int64_t startInterval;
|
||||
|
||||
public:
|
||||
void enter() { enterCompartmentDepth++; }
|
||||
void leave() { enterCompartmentDepth--; }
|
||||
int64_t totalTime;
|
||||
void enter() {
|
||||
if (addonId && !enterCompartmentDepth) {
|
||||
startInterval = PRMJ_Now();
|
||||
}
|
||||
enterCompartmentDepth++;
|
||||
}
|
||||
void leave() {
|
||||
enterCompartmentDepth--;
|
||||
if (addonId && !enterCompartmentDepth) {
|
||||
totalTime += (PRMJ_Now() - startInterval);
|
||||
}
|
||||
}
|
||||
bool hasBeenEntered() { return !!enterCompartmentDepth; }
|
||||
|
||||
JS::Zone *zone() { return zone_; }
|
||||
|
Loading…
Reference in New Issue
Block a user