source:
XIOS3/dev/XIOS_ATTACHED/src/mem_checker.hpp
Last change on this file was 2426, checked in by jderouillat, 20 months ago | |
---|---|
|
|
File size: 1.3 KB |
Line | |
---|---|
1 | #ifndef __XIOS_MEM_CHECKER_HPP__ |
2 | #define __XIOS_MEM_CHECKER_HPP__ |
3 | |
4 | #include <string> |
5 | #include <map> |
6 | #include <fstream> |
7 | #include <vector> |
8 | |
9 | namespace xios |
10 | { |
11 | class CMemChecker |
12 | { |
13 | public: |
14 | CMemChecker(const std::string& name); |
15 | void suspend(void); |
16 | void resume(void); |
17 | void reset(void); |
18 | std::vector<double> getCumulatedMem(void); |
19 | static std::vector<double> getMem(void); |
20 | static std::vector<double> getMemories(void); |
21 | static void logMem( std::string id, bool finalizeLog = false ); |
22 | static CMemChecker& get(std::string name); |
23 | static std::string getAllCumulatedMem(void) ; |
24 | static void disable(void) { enabled_=false ;} |
25 | static void enable(void) {enabled_=true ;} |
26 | static void release(void) {allMemChecker_.clear();} |
27 | private: |
28 | static void check(void) ; |
29 | std::vector<double> cumulatedMem_; |
30 | std::vector<double> lastMem_; |
31 | bool suspended_; |
32 | std::string name_; |
33 | |
34 | static std::map<std::string,CMemChecker> allMemChecker_; |
35 | static CMemChecker dummy_ ; |
36 | static bool first_ ; |
37 | static bool enabled_ ; |
38 | |
39 | static double vsize_init_; |
40 | static double rss_init_; |
41 | static double vmhwm_init_; |
42 | static double time_init_; |
43 | static std::ofstream fout_; |
44 | static int flush_counter_; |
45 | }; |
46 | } |
47 | |
48 | |
49 | |
50 | #endif |
Note: See TracBrowser
for help on using the repository browser.