From a338e594273bda039eec784ecb461395f23bd56e Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 17 May 2012 15:50:17 +0000 Subject: - missing plugins added - fixes for the status plugins' projects - other VS2010 projects cleaning git-svn-id: http://svn.miranda-ng.org/main/trunk@13 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/utils/mir_profiler.h | 77 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 plugins/utils/mir_profiler.h (limited to 'plugins/utils/mir_profiler.h') diff --git a/plugins/utils/mir_profiler.h b/plugins/utils/mir_profiler.h new file mode 100644 index 0000000000..92d776f2ee --- /dev/null +++ b/plugins/utils/mir_profiler.h @@ -0,0 +1,77 @@ +/* +Copyright (C) 2005 Ricardo Pescuma Domenecci + +This is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this file; see the file license.txt. If +not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. +*/ + + +#ifndef __PROFILER_H__ +# define __PROFILER_H__ + +#include +#include +#include + + + +class MProfiler +{ +public: + + static void Reset(); + static void Start(const char *name); + static void Step(const char *name); + static void End(); + static void Dump(const char *module); + + + + static struct Block + { + std::string name; + Block *parent; + std::map children; + bool started; + LARGE_INTEGER start; + LARGE_INTEGER last_step; + LARGE_INTEGER total; + + Block(); + ~Block(); + + void Reset(); + void Start(); + void Step(const char *name); + void Stop(); + double GetTimeMS() const; + + Block * GetChild(const char *name); + }; + + +private: + + static Block root; + static Block *current; + + static void Dump(const char *module, std::string prefix, Block *block, double parent, double total); + +}; + + + + +#endif // __PROFILER_H__ -- cgit v1.2.3