1 #ifndef DQMStoreStats_H 2 #define DQMStoreStats_H 47 void AddBinsF(
unsigned int nBins,
unsigned int nEmptyBins ) { ++
totalHistos_; totalBins_ += nBins; totalEmptyBins_ += nEmptyBins; totalMemory_ += ( nBins *=
sizeof(
float ) ); }
48 void AddBinsS(
unsigned int nBins,
unsigned int nEmptyBins ) { ++
totalHistos_; totalBins_ += nBins; totalEmptyBins_ += nEmptyBins; totalMemory_ += ( nBins *=
sizeof( short ) ); }
49 void AddBinsD(
unsigned int nBins,
unsigned int nEmptyBins ) { ++
totalHistos_; totalBins_ += nBins; totalEmptyBins_ += nEmptyBins; totalMemory_ += ( nBins *=
sizeof( double ) ); }
75 virtual void First() = 0;
76 virtual void Next() = 0;
77 virtual bool IsDone()
const = 0;
78 virtual Item CurrentItem()
const = 0;
91 virtual int size() {
return vector_->size();}
96 if(
index < (
unsigned int)vector_->size())
return false ;
102 return vector_->operator[](
index) ;
112 static unsigned int id=10;
121 id_(10),level_(0),folderName_(name),
125 for(std::vector<Folder*>::iterator
i = subfolders_.begin(),
e = subfolders_.end() ;
i !=
e ; ++
i)
134 for(std::vector<Folder*>::iterator
i = subfolders_.begin(),
e = subfolders_.end() ;
i !=
e ; ++
i)
135 if ( (*i)->name()==
name )
143 unsigned int id(
void) {
return id_;}
145 unsigned int level(
void) {
return level_;}
150 subfolders_.push_back(f);
157 for(std::vector<Folder*>::iterator
i = subfolders_.begin(),
e = subfolders_.end() ;
i !=
e ; ++
i)
158 result += (*i)->getHistos();
163 for(std::vector<Folder*>::iterator
i = subfolders_.begin(),
e = subfolders_.end() ;
i !=
e ; ++
i)
164 result += (*i)->getBins();
169 for(std::vector<Folder*>::iterator
i = subfolders_.begin(),
e = subfolders_.end() ;
i !=
e ; ++
i)
170 result += (*i)->getEmptyBins();
175 for(std::vector<Folder*>::iterator
i = subfolders_.begin(),
e = subfolders_.end() ;
i !=
e ; ++
i)
176 result += (*i)->getMemory();
190 std::cout << indent <<
"I'm a " <<
name() <<
" whose father is " << getFather()
191 <<
" with ID: " << id_
192 <<
" Histo: " << getHistos() <<
" Bins: " << getBins()
193 <<
" EmptyBins: " << getEmptyBins() <<
" Memory: " << getMemory()
194 <<
" and my children are: " << std::endl;
195 for(std::vector<Folder*>::iterator
i = subfolders_.begin(),
e = subfolders_.end() ;
i !=
e ; ++
i )
205 std::stringstream
s(
"");
206 s <<
"INSERT INTO mainrows(id, symbol_id, self_count, cumulative_count, kids, self_calls, total_calls, self_paths, total_paths, pct)" 207 " VALUES(" << id_ <<
", " << id_ <<
", " 208 << getMemory() <<
", " << getMemory() <<
", " << subfolders_.size() <<
", " 209 << getBins() - getEmptyBins() <<
", " << getBins() <<
", " 210 << getHistos() <<
", " << getHistos() <<
", 0.0);\n";
211 sql_statement.append(s.str());
212 for(std::vector<Folder*>::iterator
i = subfolders_.begin(),
e = subfolders_.end() ;
i !=
e ; ++
i )
213 (*i)->mainrows(sql_statement) ;
218 unsigned int parentid = this->getFather() ? this->getFather()->id() : id_;
219 std::stringstream
s(
"");
220 s <<
"INSERT INTO symbols(id, name, filename_id) VALUES (" << id_ <<
",\"" << folderName_ <<
"\", " 221 << parentid <<
");\n" ;
222 sql_statement.append(s.str());
223 for(std::vector<Folder*>::iterator
i = subfolders_.begin(),
e = subfolders_.end() ;
i !=
e ; ++
i )
224 (*i)->symbols(sql_statement) ;
229 unsigned int parentid = this->getFather() ? this->getFather()->id() : id_;
230 std::stringstream
s(
"");
231 s <<
"INSERT INTO parents(self_id, child_id, to_child_count, to_child_calls, to_child_paths, pct) VALUES(" 234 sql_statement.append(s.str());
235 for(std::vector<Folder*>::iterator
i = subfolders_.begin(),
e = subfolders_.end() ;
i !=
e ; ++
i )
236 (*i)->parents(sql_statement) ;
241 unsigned int parentid = this->getFather() ? this->getFather()->id() : id_;
242 std::stringstream
s(
"");
243 s <<
"INSERT INTO children(self_id, parent_id, from_parent_count, from_parent_calls, from_parent_paths, pct) VALUES(" 244 << id_ <<
"," << parentid <<
"," 245 << getMemory() <<
"," << getBins() - getEmptyBins()
247 sql_statement.append(s.str());
248 for(std::vector<Folder*>::iterator
i = subfolders_.begin(),
e = subfolders_.end() ;
i !=
e ; ++
i )
249 (*i)->children(sql_statement) ;
254 std::stringstream
s(
"");
255 s <<
"INSERT INTO mainrows(id, symbol_id, self_count, cumulative_count, kids, self_calls, total_calls, self_paths, total_paths, pct)" 256 <<
" VALUES(" << id_ <<
"," << id_ <<
"," << 0 <<
"," << getMemory() <<
", 0," 257 << getBins()-getEmptyBins() <<
"," << getBins()
258 <<
", 0, " << getHistos() <<
", 0);\n";
259 sql_statement.append(s.str());
264 std::stringstream
s(
"");
265 s <<
"INSERT INTO summary(counter, total_count, total_freq, tick_period) VALUES (\"BINS_LIVE\"," 266 << getMemory() <<
"," << getBins() <<
", 1);\n";
267 sql_statement.append(s.str());
272 std::stringstream
s(
"");
273 s <<
"INSERT INTO files(id, name) VALUES(" << id_ <<
",\"" << folderName_ <<
"\");\n" ;
274 sql_statement.append(s.str());
297 enum statsMode { considerAllME = 0, considerOnlyLumiProductME = 1 };
325 int calcstats(
int );
326 void calcIgProfDump(
Folder &);
327 void dumpMemoryProfile(
void );
328 std::pair<unsigned int, unsigned int> readMemoryEntry(
void )
const;
std::string subfolderName_
void AddBinsS(unsigned int nBins, unsigned int nEmptyBins)
void update(unsigned int bins, unsigned int empty, unsigned int memory)
def analyze(function, filename, filter=None)
void AddBinsD(unsigned int nBins, unsigned int nEmptyBins)
std::string print(const Track &, edm::Verbosity=edm::Concise)
Track print utility.
virtual bool IsDone() const
static unsigned int getId(void)
VIterator(const std::vector< Item > *aVector)
std::vector< std::pair< time_t, unsigned int > > memoryHistoryVector_
void add(const std::vector< const T * > &source, std::vector< const T * > &dest)
std::string subsystemName_
unsigned int getBins(void)
void mainrows_cumulative(std::string &sql_statement)
VIterator< Folder * > CreateIterator()
unsigned int totalMemory_
void summary(std::string &sql_statement)
const std::string & name(void)
std::string maxbinsmeglobal_
void mainrows(std::string &sql_statement)
std::vector< Folder * > subfolders_
bool isOpenProcFileSuccessful_
unsigned int totalEmptyBins_
void setLevel(unsigned int value)
unsigned int totalEmptyBins_
std::string pathnamematch_
std::string maxbinsmesubsys_
unsigned int getHistos(void)
void files(std::string &sql_statement)
void setFather(Folder *e)
void dump(std::string indent)
virtual Item CurrentItem() const
unsigned int totalHistos_
void parents(std::string &sql_statement)
Folder(const std::string name)
Folder * cd(const std::string &name)
edm::ParameterSet parameters_
unsigned int totalMemory_
unsigned int getEmptyBins(void)
void AddBinsF(unsigned int nBins, unsigned int nEmptyBins)
std::vector< std::vector< double > > tmp
void children(std::string &sql_statement)
unsigned int totalHistos_
const std::vector< Item > * vector_
std::stringstream procFileName_
void symbols(std::string &sql_statement)
unsigned int getMemory(void)
void setId(unsigned int id)