summaryrefslogtreecommitdiff
path: root/test/perf.h
blob: 29474e7cea1d96382a89b5f3e5d910af68a73839 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
 * perf.h
 *
 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Contact: Jayoun Lee           		<airjany@samsung.com>
 * Contact: Seokkyu Jang                        <seokkyu.jang@samsung.com>
 * Contact: Sangil Yoon                         <si83.yoon@samsung.com>
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the
 * Free Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
 * License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library; if not, write to the Free Software Foundation, Inc., 51
 * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 *
 */

#ifndef __PERF_H__
#define __PERF_H__

#ifdef PERF_ACTIVATE

#include <sys/time.h>
static struct timeval __g_base_time = {
	.tv_sec = 0,
	.tv_usec = 0
};

#define INIT_PERF(kb)\
do{\
	struct timeval tv;\
	gettimeofday(&tv, NULL);\
	__g_base_time.tv_sec = tv.tv_sec;\
	__g_base_time.tv_usec = tv.tv_usec;\
}while(0);

#define PERF(fmt,arg...)\
do{\
	struct timeval cur;\
	struct timeval res;\
	gettimeofday(&cur,NULL);\
	if(__g_base_time.tv_sec != 0){\
		timersub(&cur, &__g_base_time, &res);\
                printf("%c[1;31m[%s,%d] %u sec %u msec "fmt" %c[0m\n",\
			27,__FUNCTION__,__LINE__,\
				res.tv_sec,res.tv_usec/1000,##arg,27);\
	}\
}while(0);

#else

#define INIT_PERF(kb)
#define PERF(fmt,arg...) 

#endif

#endif