2014-06-26 22:32:55 -07:00

39 lines
850 B
C++

/* Copyright (c) 2014-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
#pragma once
/**
Must compile as c++ for this to work.
Usage:
// Can be an ivar or local variable
NSTimeInterval placeToStoreTiming;
{
// some scope
ASDisplayNode::ScopeTimer t(placeToStoreTiming);
DoPotentiallySlowWork();
MorePotentiallySlowWork();
}
*/
namespace ASDN {
struct ScopeTimer {
NSTimeInterval begin;
NSTimeInterval &outT;
ScopeTimer(NSTimeInterval &outRef) : outT(outRef) {
begin = CACurrentMediaTime();
}
~ScopeTimer() {
outT = CACurrentMediaTime() - begin;
}
};
}