home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume12 / cake / part09 / Script / cs < prev    next >
Encoding:
Text File  |  1987-10-15  |  1.4 KB  |  46 lines

  1. #! /bin/sh
  2. cat > /tmp/cs.prog$$ << END_PROG
  3. BEGIN    {
  4.         printf "%8s%5s%8s", "", "", "";
  5.         printf "%8s%8s%8s%8s", "self", "self", "child", "child";
  6.         printf "%8s%10s%8s", "", "", "o/h";
  7.         printf "\n";
  8.         printf "%-8s%5s%8s", "user", "inv", "mem";
  9.         printf "%8s%8s%8s%8s", "usr", "sys", "usr", "sys";
  10.         printf "%8s%10s%8s", "all", "total", "ratio";
  11.         printf "\n\n";
  12.     }
  13.     {
  14.         inv[\$1] += 1;        inv["total"] += 1;
  15.         su[\$1]  += \$2;    su["total"]  += \$2;
  16.         ss[\$1]  += \$3;    ss["total"]  += \$3;
  17.         cu[\$1]  += \$4;    cu["total"]  += \$4;
  18.         cs[\$1]  += \$5;    cs["total"]  += \$5;
  19.         mem[\$1] += \$6;    mem["total"] += \$6;
  20.     }
  21. END    {
  22.         for (u in inv)
  23.         {
  24.             opt   = (su[u])/100;
  25.             unopt = (ss[u] + cu[u] + cs[u])/100;
  26.             all   = (su[u] + ss[u] + cu[u] + cs[u])/100;
  27.  
  28.             printf "%-8s%5d", u, inv[u]        > "/tmp/cs.out$$";
  29.             printf "%7dk", mem[u]/(1000*inv[u])    > "/tmp/cs.out$$";
  30.             printf "%8.2f", su[u]/(100*inv[u])    > "/tmp/cs.out$$";
  31.             printf "%8.2f", ss[u]/(100*inv[u])    > "/tmp/cs.out$$";
  32.             printf "%8.2f", cu[u]/(100*inv[u])    > "/tmp/cs.out$$";
  33.             printf "%8.2f", cs[u]/(100*inv[u])    > "/tmp/cs.out$$";
  34.             printf "%8.2f%10.2f", all/inv[u], all    > "/tmp/cs.out$$";
  35.             if (opt > 0)
  36.                 printf "%8.2f", unopt/opt    > "/tmp/cs.out$$";
  37.             else
  38.                 printf "%s", "infinity"        > "/tmp/cs.out$$";
  39.             printf "\n"                > "/tmp/cs.out$$";
  40.         }
  41.     }
  42. END_PROG
  43. awk -f /tmp/cs.prog$$ < /u/pgrad/zs/lib/cake_stats
  44. sort +8n /tmp/cs.out$$
  45. /bin/rm -f /tmp/cs.prog$$ /tmp/cs.out$$
  46.