5168852cac95306966afad4ff6f9668be3f1ed31
[platform/core/appfw/librua.git] / src / perf-measure.c
1 /*
2  *  RUA
3  *
4  * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Jayoun Lee <airjany@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21
22
23 #include <stdio.h>
24 #include <sys/time.h>
25
26 unsigned int _perf_measure_start(const char *tag, char *func_name, int line)
27 {
28         struct timeval t;
29         unsigned int ts_start;
30
31         if (!tag)
32                 return 0;
33
34         gettimeofday(&t, NULL);
35         ts_start = t.tv_sec * 1000000UL + t.tv_usec;
36
37         printf("### START [%s:%d] timestamp(%u)\n", func_name, line, ts_start);
38
39         return ts_start;
40 }
41
42 unsigned int _perf_measure_end(const char *tag, unsigned int ts_start,
43                                 char *func_name, int line)
44 {
45         struct timeval t;
46         unsigned int ts_end;
47         unsigned int elapsed_time = 0;
48
49         gettimeofday(&t, NULL);
50         ts_end = t.tv_sec * 1000000UL + t.tv_usec;
51
52         if (ts_start)
53                 elapsed_time = ts_end - ts_start;
54
55         printf("### END [%s:%d] timestamp(%u)\n", func_name, line, ts_end);
56
57         if (elapsed_time)
58                 printf("### ELAPSED [%s:%d] timestamp(%u)\n", func_name, line,
59                         elapsed_time);
60
61         return ts_end;
62 }
63