Commit c9c53870 by linye

cuda profile

parent fd9dea07
#include "timer.h"
#include <string.h>
#include <stdio.h>
#include <time.h>
#ifdef USE_CUDA
#include <cuda_runtime.h>
#endif
timer_c::timer_c() {
}
timer_c::~timer_c() {
}
void timer_c::m_start_timer() {
#ifdef WIN32
m_start_time = GetTickCount();
#else
gettimeofday( &this->m_start_time, NULL );
#endif
}
void timer_c::m_end_timer() {
#ifdef USE_CUDA
cudaThreadSynchronize();
#endif
#ifdef WIN32
m_end_time = GetTickCount();
#else
gettimeofday( &this->m_end_time, NULL );
#endif
}
double timer_c::m_get_time_diff_sec() {
double time_diff_sec = this->m_get_time_diff() / 1000;
return time_diff_sec;
}
double timer_c::m_get_time_diff_msec() {
double time_diff_msec = this->m_get_time_diff() ;
return time_diff_msec;
}
// return ms
double timer_c::m_get_time_diff() {
double time_diff = 0.0;
#ifdef WIN32
time_diff = m_end_time - m_start_time;
#else
time_diff = ( this->m_end_time.tv_sec - this->m_start_time.tv_sec ) * 1000 + ((double)( this->m_end_time.tv_usec - this->m_start_time.tv_usec ))/1000;
#endif
return time_diff;
}
void timer_c::m_current_time_to_str(std::string & output)
{
const time_t t = time(NULL);
struct tm * current_time = localtime(&t);
char temp_time[100];
memset(temp_time,0,sizeof(char)* 100);
sprintf(temp_time,"[%04d-%02d-%02d %02d:%02d:%02d]",current_time->tm_year+1900,current_time->tm_mon+1,current_time->tm_mday,current_time->tm_hour,current_time->tm_min,current_time->tm_sec);
output = temp_time;
return;
}
\ No newline at end of file
/****************************************************************************
* Project Name : NiuTrans Server Decoder
* File Name : timer.h
* Author : Wang Qiang
* Email : wangqiang@zjyatuo.com
* Create Time : 2016/1/15 10:53:46
* Copyright : Copyright (c) 2016 Shenyang YaTrans Network Technology Co., Ltd. All Rights Reserved.
*
* toolkit used for timer
*
****************************************************************************/
#ifndef _TIMER_H_
#define _TIMER_H_
#include <string>
#ifdef _WIN32
#include <windows.h>
#else
#include <sys/time.h>
#include <time.h>
#endif
class timer_c {
public:
timer_c();
~timer_c();
void m_start_timer();
void m_end_timer();
double m_get_time_diff_sec();
double m_get_time_diff_msec();
public:
static void m_current_time_to_str(std::string & output);
private:
double m_get_time_diff(); /* get the time difference in unit of usec(1.0e-6 sec) */
private:
#ifdef WIN32
DWORD m_start_time;
DWORD m_end_time;
#else
struct timeval m_start_time;
struct timeval m_end_time;
#endif
};
#endif
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论