diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2009-07-02 14:11:19 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2009-07-02 14:12:24 +0100 |
commit | c127ad3d4a494abb2d9bb4fb6eaa179431d2411a (patch) | |
tree | bbb6012da7baf0337bfc63f3901da0e8bc9c3a81 /daemon | |
parent | c12edb2d52956e17f7848e34ae1607dc6f0a2a81 (diff) | |
download | libguestfs-c127ad3d4a494abb2d9bb4fb6eaa179431d2411a.tar.gz libguestfs-c127ad3d4a494abb2d9bb4fb6eaa179431d2411a.tar.xz libguestfs-c127ad3d4a494abb2d9bb4fb6eaa179431d2411a.zip |
In verbose mode, daemon will display the time elapsed for each command.
Diffstat (limited to 'daemon')
-rw-r--r-- | daemon/proto.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/daemon/proto.c b/daemon/proto.c index ffb4a4e8..39cee5ab 100644 --- a/daemon/proto.c +++ b/daemon/proto.c @@ -47,6 +47,8 @@ main_loop (int _sock) char lenbuf[4]; unsigned len; struct guestfs_message_header hdr; + struct timeval start_t, end_t; + int64_t start_us, end_us, elapsed_us; sock = _sock; @@ -102,6 +104,10 @@ main_loop (int _sock) } #endif + /* In verbose mode, display the time taken to run each command. */ + if (verbose) + gettimeofday (&start_t, NULL); + /* Decode the message header. */ xdrmem_create (&xdr, buf, len, XDR_DECODE); if (!xdr_guestfs_message_header (&xdr, &hdr)) { @@ -133,6 +139,19 @@ main_loop (int _sock) dispatch_incoming_message (&xdr); /* Note that dispatch_incoming_message will also send a reply. */ + /* In verbose mode, display the time taken to run each command. */ + if (verbose) { + gettimeofday (&end_t, NULL); + + start_us = (int64_t) start_t.tv_sec * 1000000 + start_t.tv_usec; + end_us = (int64_t) end_t.tv_sec * 1000000 + end_t.tv_usec; + elapsed_us = end_us - start_us; + fprintf (stderr, "proc %d serial %d took %d.%02d seconds\n", + proc_nr, serial, + (int) (elapsed_us / 1000000), + (int) ((elapsed_us / 10000) % 100)); + } + cont: xdr_destroy (&xdr); free (buf); |