
Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [tlug] A Rich Experiment Indeed
Michal Hajek wrote:
> [W]ell, I have been reading more and trying to understand. 
You are succeeding quite well. 
This is fun. Thanks for the ride. 
> I see two ways of improvement:
> 
> A - replace ftime with gettimeofday()
> B - replace my printf format with a better one eg. use %d.%03ld 
> 
> In Jim's cas2.c only B was implemented. 
> In Josh's noname, both A and B ware implemented. 
> I have compiled both and run for a moment [3] with:
> $ ./cas2 | uniq | sed -e 's/^113368//g' > cas2.sed
> $ ./josh_noname | uniq | sed -e 's/^113368//g' > josh_noname.sed
> [Data plotted] with gnuplot :
> http://material.karlov.mff.cuni.cz/people/hajek/timetest/cas2.png
> http://material.karlov.mff.cuni.cz/people/hajek/timetest/josh_noname.png
> 
> Hopla! 
Ahh, so now I know the Czech translation of "Yikes!". 
> Even though Jim did not use gettimeofday(), his program gives more or
> less straight line, while Josh's noname gives a saw. 
> 
> ... Josh's programm :...
> printf("%d.%03ld \t \n",(int)start.tv_sec,start.tv_usec*1000);
> 
> Let me change it to :
> printf("%d.%06ld \t \n",(int)start.tv_sec,start.tv_usec/1000);
>            ^^^^^                                   ^^^^^^^^^
Excellent, your vision is excellent. 
> Oh no! Wrong again... :)
> 
> Aha, ... let's use this line instead:
> printf("%d.%06ld \t \n",(int)start.tv_sec,start.tv_usec);
>                                                   ^^^^^^
> and this time we have [a somewhat good result] :) 
Cool! 
I would remove the unnecessary int cast: 
   printf("%ld.%06ld \t \n",start.tv_sec,start.tv_usec);
Now to polish to a high sheen, 
removing the need for my crude sed trimming: 
   $ cat chronos.c
   #include <stdio.h>
   #include <stdlib.h>
   #include <sys/time.h>
   int main(int argc,char *argv[])
   {
      struct timeval start;
      struct timeval now;
      gettimeofday(&start,NULL);
      for (;;) {
         gettimeofday(&now,NULL);
         printf("%ld.%06ld\n",now.tv_sec-start.tv_sec,now.tv_usec);
      }
      return EXIT_SUCCESS;
   }
   $ make chronos
   cc     chronos.c   -o chronos
   $ ./chronos >chronos.dat
   ^C (this abrupt end can leave in incomplete line. 
       You can delete the incomplete line, 
       or leave it as a "flyer" point. (So much for high sheen.))
   $ gnuplot
   gnuplot> plot 'chronos.dat'
> ... gnuplot [4] is able to handle mouse clicks
> inside graph and some manipulation based on mouse input. 
> If anyone has a good totorial page, it would be [welcome].
Welcome by me too. I used the 
http://www.duke.edu/~hpgavin/gnuplot.html tutorial, 
but I don't think it covers mouse stuff. 
Sometimes you just have to break down and 
read the official manual. 
http://www.gnuplot.info/docs/gnuplot.html
A Rich Experiment Indeed
Home |
Main Index |
Thread Index