[PATCH] change output of htags --statistics

View: New views
4 Messages — Rating Filter:   Alert me  

[PATCH] change output of htags --statistics

by Hideki IWAMOTO :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi.

Currently, `htags --statistics' outputs elapsed times with the accuracy of second.
It is preferable that the CPU time is output and the elapsed time is output by higher accuracy.

This patch changes `htags --statistics' as follows.

#if HAVE_GETRUSAGE && HAVE_GETTIMEOFDAY
     Use gettimeofday() to get elapsed time.
     Use getrusage() to get CPU time.
#elif HAVE_TIMES
  #if HAVE_GETTIMEOFDAY
     Use gettimeofday() to get elapsed time.
     Use times() to get CPU time.
  #else
     Use times() to get elapsed time and CPU time.
  #endif
#else
  #if HAVE_GETTIMEOFDAY
     Use gettimeofday() to get elapsed time.
  #else
     Use time() to get elapsed time.
  #endif
#endif


The output in each case is as follows.

======== Case 1 =============================================================
#define HAVE_GETRUSAGE 1
#define HAVE_GETTIMEOFDAY 1

$ htags --statistics
period                            user[sec] system[sec] elapsed[sec]  %CPU
--------------------------------- --------- ----------- ------------ -----
Time of making duplicate entries      1.988       0.184        1.420 153.0
Time of making function index         0.272       0.036        0.281 109.7
Time of making file index             0.028       0.012        0.042  96.3
Time of making include file index     1.120       0.092        1.216  99.7
Time of making hypertext             18.701       1.888       15.474 133.1
The entire time                      22.113       2.220       18.440 132.0

======== Case 2 =============================================================
#undef HAVE_GETRUSAGE
#define HAVE_GETTIMEOFDAY 1
#define HAVE_TIMES 1

$ htags --statistics
period                            user[sec] system[sec] elapsed[sec]  %CPU
--------------------------------- --------- ----------- ------------ -----
Time of making duplicate entries      1.970       0.170        1.527 140.1
Time of making function index         0.290       0.020        0.278 111.6
Time of making file index             0.030       0.010        0.041  97.8
Time of making include file index     1.110       0.080        1.201  99.1
Time of making hypertext             18.060       1.980       15.221 131.7
The entire time                      21.460       2.260       18.276 129.8

======== Case 3 =============================================================
#undef HAVE_GETRUSAGE
#undef HAVE_GETTIMEOFDAY
#define HAVE_TIMES 1

$ htags --statistics
period                            user[sec] system[sec] elapsed[sec]  %CPU
--------------------------------- --------- ----------- ------------ -----
Time of making duplicate entries      2.020       0.190        1.550 142.6
Time of making function index         0.260       0.040        0.280 107.1
Time of making file index             0.020       0.030        0.040 125.0
Time of making include file index     1.070       0.110        1.170 100.9
Time of making hypertext             18.580       2.190       15.310 135.7
The entire time                      21.950       2.560       18.360 133.5

======== Case 4 =============================================================
#undef HAVE_GETRUSAGE
#define HAVE_GETTIMEOFDAY 1
#undef HAVE_TIMES

$ htags --statistics
period                            elapsed[sec]
--------------------------------- ------------
Time of making duplicate entries         1.405
Time of making function index            0.294
Time of making file index                0.042
Time of making include file index        1.157
Time of making hypertext                15.555
The entire time                         18.461

======== Case 5 =============================================================
#undef HAVE_GETRUSAGE
#undef HAVE_GETTIMEOFDAY
#undef HAVE_TIMES

$ htags --statistics
period                            elapsed[sec]
--------------------------------- ------------
Time of making duplicate entries         2.000
Time of making function index            0.000
Time of making file index                0.000
Time of making include file index        1.000
Time of making hypertext                15.000
The entire time                         18.000


Diffstat:
 configure.ac         |    2
 htags/htags.c        |   50 +----
 libutil/Makefile.am  |    4
 libutil/global.h     |    1
 libutil/statistics.c |  493 +++++++++++++++++++++++++++++++++++++++++++++++++++
 libutil/statistics.h |   84 ++++++++
 libutil/strbuf.c     |   15 +
 libutil/strbuf.h     |    4
 8 files changed, 616 insertions(+), 37 deletions(-)

----
Hideki IWAMOTO  h-iwamoto@...


_______________________________________________
Bug-global mailing list
Bug-global@...
http://lists.gnu.org/mailman/listinfo/bug-global

20091102-statistics-5.patch (34K) Download Attachment

Re: [PATCH] change output of htags --statistics

by Hideki IWAMOTO :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi.

> #elif HAVE_TIMES

I don't know whether support of times(2) is needed.
Is there anybody who is using the system that supports times
and doesn't support gettimeofday and getrusage?


On Mon, 02 Nov 2009 10:53:35 +0900, Hideki IWAMOTO wrote...

> Hi.
>
> Currently, `htags --statistics' outputs elapsed times with the accuracy of second.
> It is preferable that the CPU time is output and the elapsed time is output by higher accuracy.
>
> This patch changes `htags --statistics' as follows.
>
> #if HAVE_GETRUSAGE && HAVE_GETTIMEOFDAY
>      Use gettimeofday() to get elapsed time.
>      Use getrusage() to get CPU time.
> #elif HAVE_TIMES
>   #if HAVE_GETTIMEOFDAY
>      Use gettimeofday() to get elapsed time.
>      Use times() to get CPU time.
>   #else
>      Use times() to get elapsed time and CPU time.
>   #endif
> #else
>   #if HAVE_GETTIMEOFDAY
>      Use gettimeofday() to get elapsed time.
>   #else
>      Use time() to get elapsed time.
>   #endif
> #endif
>
>
> The output in each case is as follows.
>
> ======== Case 1 =============================================================
> #define HAVE_GETRUSAGE 1
> #define HAVE_GETTIMEOFDAY 1
>
> $ htags --statistics
> period                            user[sec] system[sec] elapsed[sec]  %CPU
> --------------------------------- --------- ----------- ------------ -----
> Time of making duplicate entries      1.988       0.184        1.420 153.0
> Time of making function index         0.272       0.036        0.281 109.7
> Time of making file index             0.028       0.012        0.042  96.3
> Time of making include file index     1.120       0.092        1.216  99.7
> Time of making hypertext             18.701       1.888       15.474 133.1
> The entire time                      22.113       2.220       18.440 132.0
>
> ======== Case 2 =============================================================
> #undef HAVE_GETRUSAGE
> #define HAVE_GETTIMEOFDAY 1
> #define HAVE_TIMES 1
>
> $ htags --statistics
> period                            user[sec] system[sec] elapsed[sec]  %CPU
> --------------------------------- --------- ----------- ------------ -----
> Time of making duplicate entries      1.970       0.170        1.527 140.1
> Time of making function index         0.290       0.020        0.278 111.6
> Time of making file index             0.030       0.010        0.041  97.8
> Time of making include file index     1.110       0.080        1.201  99.1
> Time of making hypertext             18.060       1.980       15.221 131.7
> The entire time                      21.460       2.260       18.276 129.8
>
> ======== Case 3 =============================================================
> #undef HAVE_GETRUSAGE
> #undef HAVE_GETTIMEOFDAY
> #define HAVE_TIMES 1
>
> $ htags --statistics
> period                            user[sec] system[sec] elapsed[sec]  %CPU
> --------------------------------- --------- ----------- ------------ -----
> Time of making duplicate entries      2.020       0.190        1.550 142.6
> Time of making function index         0.260       0.040        0.280 107.1
> Time of making file index             0.020       0.030        0.040 125.0
> Time of making include file index     1.070       0.110        1.170 100.9
> Time of making hypertext             18.580       2.190       15.310 135.7
> The entire time                      21.950       2.560       18.360 133.5
>
> ======== Case 4 =============================================================
> #undef HAVE_GETRUSAGE
> #define HAVE_GETTIMEOFDAY 1
> #undef HAVE_TIMES
>
> $ htags --statistics
> period                            elapsed[sec]
> --------------------------------- ------------
> Time of making duplicate entries         1.405
> Time of making function index            0.294
> Time of making file index                0.042
> Time of making include file index        1.157
> Time of making hypertext                15.555
> The entire time                         18.461
>
> ======== Case 5 =============================================================
> #undef HAVE_GETRUSAGE
> #undef HAVE_GETTIMEOFDAY
> #undef HAVE_TIMES
>
> $ htags --statistics
> period                            elapsed[sec]
> --------------------------------- ------------
> Time of making duplicate entries         2.000
> Time of making function index            0.000
> Time of making file index                0.000
> Time of making include file index        1.000
> Time of making hypertext                15.000
> The entire time                         18.000
>
>
> Diffstat:
>  configure.ac         |    2
>  htags/htags.c        |   50 +----
>  libutil/Makefile.am  |    4
>  libutil/global.h     |    1
>  libutil/statistics.c |  493 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  libutil/statistics.h |   84 ++++++++
>  libutil/strbuf.c     |   15 +
>  libutil/strbuf.h     |    4
>  8 files changed, 616 insertions(+), 37 deletions(-)
>
> ----
> Hideki IWAMOTO  h-iwamoto@...
> ______________________________________________________________________
>
> _______________________________________________
> Bug-global mailing list
> Bug-global@...
> http://lists.gnu.org/mailman/listinfo/bug-global

----
Hideki IWAMOTO  h-iwamoto@...


_______________________________________________
Bug-global mailing list
Bug-global@...
http://lists.gnu.org/mailman/listinfo/bug-global

Re: [PATCH] change output of htags --statistics

by Shigio YAMAGUCHI-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi
> > #elif HAVE_TIMES
>
> I don't know whether support of times(2) is needed.
> Is there anybody who is using the system that supports times
> and doesn't support gettimeofday and getrusage?

There might not be necessity of it.
In FreeBSD, we can see the following description at the head of the DESCRIPTION of times(2).

  "This interface is obsoleted by getrusage(2) and gettimeofday(2)."

As for either, those who should use times(2) is small number of people even in case of being.
--
Shigio YAMAGUCHI <shigio@...>
PGP fingerprint: D1CB 0B89 B346 4AB6 5663  C4B6 3CA5 BBB3 57BE DDA3


_______________________________________________
Bug-global mailing list
Bug-global@...
http://lists.gnu.org/mailman/listinfo/bug-global

Re: [PATCH] change output of htags --statistics

by Hideki IWAMOTO :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> There might not be necessity of it.

The patch was simplified by dropping support of times.
Attached is updated version.


 configure.ac         |    2
 htags/htags.c        |   50 +----
 libutil/Makefile.am  |    4
 libutil/global.h     |    1
 libutil/statistics.c |  436 +++++++++++++++++++++++++++++++++++++++++++++++++++
 libutil/statistics.h |   98 +++++++++++
 libutil/strbuf.c     |   15 +
 libutil/strbuf.h     |    4
 8 files changed, 573 insertions(+), 37 deletions(-)

On Wed, 04 Nov 2009 08:19:17 +0900, Shigio YAMAGUCHI wrote...

> Hi
> > > #elif HAVE_TIMES
> >
> > I don't know whether support of times(2) is needed.
> > Is there anybody who is using the system that supports times
> > and doesn't support gettimeofday and getrusage?
>
> There might not be necessity of it.
> In FreeBSD, we can see the following description at the head of the DESCRIPTION of times(2).
>
>   "This interface is obsoleted by getrusage(2) and gettimeofday(2)."
>
> As for either, those who should use times(2) is small number of people even in case of being.
> --
> Shigio YAMAGUCHI <shigio@...>
> PGP fingerprint: D1CB 0B89 B346 4AB6 5663  C4B6 3CA5 BBB3 57BE DDA3
----
Hideki IWAMOTO  h-iwamoto@...


_______________________________________________
Bug-global mailing list
Bug-global@...
http://lists.gnu.org/mailman/listinfo/bug-global

20091104-statistics-2.patch (33K) Download Attachment