> I wrote a really simple program, forktest.c.

Chris beat me to the punch, but I'm posting anyway because I went a
different direction.  I wrote some rc scripts that make static and
dynamic libraries of various sizes and programs that use those
libraries (trivially).  For each number of functions 1, 10, 100, 1000,
10000, 100000 I timed static and dynamic execution of a program that
conditionally calls that many functions in 1 or 10 libraries.  The
scripts are attached, run mklibs, then mkprogs, then runtests.  Below
are the results of a single run on my laptop (fixed with font looks
better).  I can't spend any more time on this, but it was a fun
morning goof-off.

Static (functions libraries binary-size user system elapsed)
     1  1  556898 0.24 0.50 0.78
    10  1  557324 0.28 0.44 0.82
    10 10  557913 0.32 0.42 0.81
   100  1  561737 0.24 0.50 0.84
   100 10  562196 0.28 0.46 0.79
  1000  1  609496 0.29 0.47 0.83
  1000 10  606381 0.26 0.48 0.84
 10000  1 1105475 0.30 0.44 0.87
 10000 10 1083834 0.28 0.47 0.82
100000  1 6245494 0.27 0.48 0.88
100000 10 6043871 0.28 0.48 0.81

Dynamic (functions libraries binary-size user system elapsed)
     1  1     6489 0.49 0.86 1.39
    10  1     7322 0.52 0.86 1.45
    10 10     7464 0.83 1.14 2.03
   100  1    16366 0.59 0.78 1.42
   100 10    16177 1.14 1.11 2.35
  1000  1   108268 0.55 0.87 1.47
  1000 10   104496 0.88 1.12 2.07
 10000  1  1077758 0.81 0.98 1.89
 10000 10  1037387 1.12 1.36 2.63
100000  1 10915272 2.79 2.50 6.31
100000 10 10517862 3.13 3.68 7.13

I think dynamic 100-10 is a fluke, I also think it's interesting that
the dynamic binaries are bigger above 10000 function calls.  Don't
know why, don't have time to figure it out.

Micah

Attachment: mklibs
Description: Binary data

Attachment: mkprog
Description: Binary data

Attachment: mkprogs
Description: Binary data

Attachment: runtests
Description: Binary data

Reply via email to