/* 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; } }; }