stats.c 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include "stdinc.h"
  2. #include "dat.h"
  3. #include "fns.h"
  4. Stats stats;
  5. void
  6. statsInit(void)
  7. {
  8. stats.lock = vtLockAlloc();
  9. }
  10. static int
  11. percent(long v, long total)
  12. {
  13. if(total == 0)
  14. total = 1;
  15. if(v < 1000*1000)
  16. return (v * 100) / total;
  17. total /= 100;
  18. if(total == 0)
  19. total = 1;
  20. return v / total;
  21. }
  22. void
  23. printStats(void)
  24. {
  25. fprint(2, "lump writes=%,ld\n", stats.lumpWrites);
  26. fprint(2, "lump reads=%,ld\n", stats.lumpReads);
  27. fprint(2, "lump cache read hits=%,ld\n", stats.lumpHit);
  28. fprint(2, "lump cache read misses=%,ld\n", stats.lumpMiss);
  29. fprint(2, "clump disk writes=%,ld\n", stats.clumpWrites);
  30. fprint(2, "clump disk bytes written=%,lld\n", stats.clumpBWrites);
  31. fprint(2, "clump disk bytes compressed=%,lld\n", stats.clumpBComp);
  32. fprint(2, "clump disk reads=%,ld\n", stats.clumpReads);
  33. fprint(2, "clump disk bytes read=%,lld\n", stats.clumpBReads);
  34. fprint(2, "clump disk bytes uncompressed=%,lld\n", stats.clumpBUncomp);
  35. fprint(2, "clump directory disk writes=%,ld\n", stats.ciWrites);
  36. fprint(2, "clump directory disk reads=%,ld\n", stats.ciReads);
  37. fprint(2, "index disk writes=%,ld\n", stats.indexWrites);
  38. fprint(2, "index disk reads=%,ld\n", stats.indexReads);
  39. fprint(2, "index disk reads for modify=%,ld\n", stats.indexWReads);
  40. fprint(2, "index disk reads for allocation=%,ld\n", stats.indexAReads);
  41. fprint(2, "index cache lookups=%,ld\n", stats.icLookups);
  42. fprint(2, "index cache hits=%,ld %d%%\n", stats.icHits,
  43. percent(stats.icHits, stats.icLookups));
  44. fprint(2, "index cache fills=%,ld %d%%\n", stats.icFills,
  45. percent(stats.icFills, stats.icLookups));
  46. fprint(2, "index cache inserts=%,ld\n", stats.icInserts);
  47. fprint(2, "disk cache hits=%,ld\n", stats.pcHit);
  48. fprint(2, "disk cache misses=%,ld\n", stats.pcMiss);
  49. fprint(2, "disk cache reads=%,ld\n", stats.pcReads);
  50. fprint(2, "disk cache bytes read=%,lld\n", stats.pcBReads);
  51. fprint(2, "disk writes=%,ld\n", stats.diskWrites);
  52. fprint(2, "disk bytes written=%,lld\n", stats.diskBWrites);
  53. fprint(2, "disk reads=%,ld\n", stats.diskReads);
  54. fprint(2, "disk bytes read=%,lld\n", stats.diskBReads);
  55. }