
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