Boost logo

Boost :

From: christopher diggins (cdiggins_at_[hidden])
Date: 2005-02-04 10:07:59


I was searching around boost for mention of a profiling library. A fellow by
the name of Carl Daniels posted something about an invasive profiling
library. I was wondering in anyone knows what happened to that project?
Profiling seems lacking at Boost, is anyone else interested in such a thing?

Would a trivial policy driven RAII type be sufficient to garner interest as
a mini-library?

e.g.

  struct ProfilerDefaultPolicy {
    OnElapsed(int msec) {
      cout << "time elapsed (msec): " << msec << endl;
    }
  };

  template<typename Policy_T = ProfilerDefaultPolicy>
  class Profiler {
    public:
      Profiler() { mnStart = GetTickCount(); };
      ~Profiler() { Policy_T::OnElapsed(GetMSecElapsed()); };
      int GetMSecElapsed() { return GetTickCount() - mnStart; };
      int GetTickCount() { return int(double(clock()) * 1000 /
CLOCKS_PER_SEC); };
    private:
      int mnStart;
  };

usage:

  void MyRoutine() {
    Profiler<> p;
    // do stuff
  }

Pretty trivial (and probably not boost-worthy), but I find it very useful.
Does anyone want to take this and run with it (i.e. boostify it)?

Christopher Diggins
Object Oriented Template Library (OOTL)
http://www.ootl.org


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk