1diff -rc c-library-1.2/statistics/rsrc-usage.c c-library-1.2-new/statistics/rsrc-usage.c
2*** c-library-1.2/statistics/rsrc-usage.c 2008-11-10 14:09:47.000000000 +0100
3--- c-library-1.2-new/statistics/rsrc-usage.c 2010-08-24 09:09:13.000000000 +0200
4***************
5*** 2,81 ****
6
7 #include <unistd.h>
8 #include <stdio.h>
9- #include <sys/time.h>
10- #include <sys/resource.h>
11 #include "rsrc-usage.h"
12
13 /*static int AT_calcAllocatedSize();*/
14- static struct rusage rsrc_usage;
15- static struct rusage flt_rsrc_usage;
16
17 void printrusage(struct rusage *rusage) {
18- fprintf(stderr, "maxrss %ld\n", rusage->ru_maxrss);
19- fprintf(stderr, "ixrss %ld\n", rusage->ru_ixrss);
20- fprintf(stderr, "idrss %ld\n", rusage->ru_idrss);
21- fprintf(stderr, "isrss %ld\n", rusage->ru_isrss);
22- fprintf(stderr, "minflt %ld\n", rusage->ru_minflt);
23- fprintf(stderr, "majflt %ld\n", rusage->ru_majflt);
24- fprintf(stderr, "nswap %ld\n", rusage->ru_nswap);
25- fprintf(stderr, "inblock %ld\n", rusage->ru_inblock);
26- fprintf(stderr, "oublock %ld\n", rusage->ru_oublock);
27- fprintf(stderr, "msgsnd %ld\n", rusage->ru_msgsnd);
28- fprintf(stderr, "msgrcv %ld\n", rusage->ru_msgrcv);
29- fprintf(stderr, "nsignals %ld\n", rusage->ru_nsignals);
30- fprintf(stderr, "nvcsw %ld\n", rusage->ru_nvcsw);
31- fprintf(stderr, "nivcsw %ld\n", rusage->ru_nivcsw);
32 }
33
34 double STATS_Timer(void) {
35! static double cur = 0;
36! double prev;
37!
38! prev = cur;
39! if (getrusage(RUSAGE_SELF, &rsrc_usage) == -1) {
40! perror("getrusage");
41! return (double)0;
42! }
43!
44! cur = (double) (rsrc_usage.ru_utime.tv_sec) +
45! (double) ((rsrc_usage.ru_utime.tv_usec) * 1.0e-06);
46!
47! prev = cur - prev;
48! return prev > 0 ? prev: 0;
49 }
50
51 void STATS_PageFlt(long *maj, long *min) {
52! static long ma, mi, ma_prev, mi_prev;
53!
54!
55! ma_prev = ma;
56! mi_prev = mi;
57! getrusage(RUSAGE_SELF, &flt_rsrc_usage);
58!
59! /* printrusage(&flt_rsrc_usage); */
60!
61! mi = flt_rsrc_usage.ru_minflt - mi_prev;
62! ma = flt_rsrc_usage.ru_majflt - ma_prev;
63!
64! *maj = ma;
65! *min = mi;
66 }
67
68 long STATS_Allocated(void) {
69! static long allocated = 0L;
70! long tmp;
71!
72! tmp = allocated;
73! /** \todo: AT_calcAllocatedSize() is unreachable. Fix. */
74! /*allocated = AT_calcAllocatedSize();*/
75!
76! return allocated - tmp;
77 }
78
79 long STATS_ResidentSetSize(void) {
80! getrusage(RUSAGE_SELF, &rsrc_usage);
81!
82! return rsrc_usage.ru_maxrss;
83 }
84
85
86--- 2,29 ----
87
88 #include <unistd.h>
89 #include <stdio.h>
90 #include "rsrc-usage.h"
91
92 /*static int AT_calcAllocatedSize();*/
93
94 void printrusage(struct rusage *rusage) {
95 }
96
97 double STATS_Timer(void) {
98! return 0;
99 }
100
101 void STATS_PageFlt(long *maj, long *min) {
102! *maj = 0;
103! *min = 0;
104 }
105
106 long STATS_Allocated(void) {
107! return 0;
108 }
109
110 long STATS_ResidentSetSize(void) {
111! return 0;
112 }
113
114