27 ProfileTimer(
const char* name, 
int maxEntries) :
    34     init(name, maxEntries);
    45   _maxEntries=other._maxEntries;
    47     init(_name, _maxEntries);
    51   _elapsedTime=other._elapsedTime;
    52   _autoTimerCount=other._autoTimerCount;
    53   _entryCount=other._entryCount;
    55     memcpy(_entries, other._entries, _entryCount * 
sizeof(TimerEntry));
    61   PANDA_FREE_ARRAY(_entries);
    80 init(
const char* name, 
int maxEntries) {
    82   _maxEntries=maxEntries;
    83   _entries = (TimerEntry *)PANDA_MALLOC_ARRAY(_maxEntries * 
sizeof(TimerEntry));
    90 getTotalTime()
 const {
    93   for (i=0; i<_entryCount; ++i) {
    94     TimerEntry& te=_entries[i];
   101 consolidateAllTo(ostream &out) {
   104     p->consolidateTo(out);
   110 consolidateTo(ostream &out)
 const {
   113   for (i=0; i<_entryCount; ++i) {
   114     TimerEntry& te=_entries[i];
   115     entries[te._tag]+=te._time;
   117   out << 
"-------------------------------------------------------------------\n"   118     << 
"Profile Timing of " << _name
   123   for (;i!=entries.end(); ++i) {
   124     out << 
"  " << std::setw(50) << i->first << 
": "   125     << std::setiosflags(std::ios::fixed) << std::setprecision(6) << std::setw(10) << i->second << 
"\n";
   129   out << 
"\n                       [Total Time: "   130     << std::setiosflags(std::ios::fixed) << std::setprecision(6) << total
   132     << 
"-------------------------------------------------------------------\n";
   137 printAllTo(ostream &out) {
   146 printTo(ostream &out)
 const {
   147   out << 
"-------------------------------------------------------------------\n"   148     << 
"Profile Timing of " << _name
   152   for (i=0; i<_entryCount; ++i) {
   153     TimerEntry& te=_entries[i];
   154     out << 
"  " << std::setw(50) << te._tag << 
": "   155     << std::setiosflags(std::ios::fixed) << std::setprecision(6) << std::setw(10) << te._time << 
"\n";
   158   out << 
"\n                       [Total Time: "   159     << std::setiosflags(std::ios::fixed) << std::setprecision(6) << total
   161     << 
"-------------------------------------------------------------------\n";
   165 ProfileTimer::AutoTimer::AutoTimer(
ProfileTimer& profile, 
const char* tag) :
   168   if (_profile._autoTimerCount) {
   171     _profile.mark(_profile._entries[_profile._entryCount-1]._tag);
   174     _profile.mark(
"other");
   177   ++_profile._autoTimerCount;
 PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
This is our own Panda specialization on the default STL map.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.