58 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
//
 | 
						|
// Copyright 2019 The ANGLE Project Authors. All rights reserved.
 | 
						|
// Use of this source code is governed by a BSD-style license that can be
 | 
						|
// found in the LICENSE file.
 | 
						|
//
 | 
						|
// Timer.cpp: Implementation of a high precision timer class.
 | 
						|
//
 | 
						|
 | 
						|
#include "util/Timer.h"
 | 
						|
 | 
						|
#include "common/system_utils.h"
 | 
						|
 | 
						|
Timer::Timer() : mRunning(false), mStartTime(0), mStopTime(0) {}
 | 
						|
 | 
						|
void Timer::start()
 | 
						|
{
 | 
						|
    mStartTime    = angle::GetCurrentSystemTime();
 | 
						|
    mStartCpuTime = angle::GetCurrentProcessCpuTime();
 | 
						|
    mRunning      = true;
 | 
						|
}
 | 
						|
 | 
						|
void Timer::stop()
 | 
						|
{
 | 
						|
    mStopTime    = angle::GetCurrentSystemTime();
 | 
						|
    mStopCpuTime = angle::GetCurrentProcessCpuTime();
 | 
						|
    mRunning     = false;
 | 
						|
}
 | 
						|
 | 
						|
double Timer::getElapsedWallClockTime() const
 | 
						|
{
 | 
						|
    double endTime;
 | 
						|
    if (mRunning)
 | 
						|
    {
 | 
						|
        endTime = angle::GetCurrentSystemTime();
 | 
						|
    }
 | 
						|
    else
 | 
						|
    {
 | 
						|
        endTime = mStopTime;
 | 
						|
    }
 | 
						|
 | 
						|
    return endTime - mStartTime;
 | 
						|
}
 | 
						|
 | 
						|
double Timer::getElapsedCpuTime() const
 | 
						|
{
 | 
						|
    double endTime;
 | 
						|
    if (mRunning)
 | 
						|
    {
 | 
						|
        endTime = angle::GetCurrentProcessCpuTime();
 | 
						|
    }
 | 
						|
    else
 | 
						|
    {
 | 
						|
        endTime = mStopCpuTime;
 | 
						|
    }
 | 
						|
 | 
						|
    return endTime - mStartCpuTime;
 | 
						|
}
 |