diff options
author | Vladimir Mezentsev <vladimir.mezentsev@oracle.com> | 2022-03-11 08:58:31 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2022-03-11 08:58:31 +0000 |
commit | bb368aad297fe3ad40cf397e6fc85aa471429a28 (patch) | |
tree | 0ab25909b8fe789d676bbdb00d501d4d485e4afe /gprofng/src/IOActivity.h | |
parent | a655f19af95eb685ba64f48ee8fc2b3b7a3d886a (diff) | |
download | gdb-bb368aad297fe3ad40cf397e6fc85aa471429a28.zip gdb-bb368aad297fe3ad40cf397e6fc85aa471429a28.tar.gz gdb-bb368aad297fe3ad40cf397e6fc85aa471429a28.tar.bz2 |
gprofng: a new GNU profiler
top-level
* Makefile.def: Add gprofng module.
* configure.ac: Add --enable-gprofng option.
* src-release.sh: Add gprofng.
* Makefile.in: Regenerate.
* configure: Regenerate.
* gprofng: New directory.
binutils
* MAINTAINERS: Add gprofng maintainer.
* README-how-to-make-a-release: Add gprofng.
include.
* collectorAPI.h: New file.
* libcollector.h: New file.
* libfcollector.h: New file.
Diffstat (limited to 'gprofng/src/IOActivity.h')
-rw-r--r-- | gprofng/src/IOActivity.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/gprofng/src/IOActivity.h b/gprofng/src/IOActivity.h new file mode 100644 index 0000000..35c4517 --- /dev/null +++ b/gprofng/src/IOActivity.h @@ -0,0 +1,86 @@ +/* Copyright (C) 2021 Free Software Foundation, Inc. + Contributed by Oracle. + + This file is part of GNU Binutils. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +#ifndef _IOACTIVITY_H +#define _IOACTIVITY_H + + +#include <stdio.h> + +#include "vec.h" +#include "Histable.h" +#include "Hist_data.h" +#include "Metric.h" +#include "FileData.h" +#include "DefaultMap.h" +#include "dbe_types.h" + +class Experiment; +class Expression; +class DataView; +class DbeView; + +class IOActivity +{ +public: + + IOActivity (DbeView *_dbev); + void reset (void); + Hist_data *compute_metrics (MetricList *, Histable::Type, Hist_data::Mode, + Histable*); + + ~IOActivity () + { + this->reset (); + } + +private: + void computeData (Histable::Type); + void computeCallStack (Histable::Type, VMode viewMode); + void createHistItemTotals (Hist_data *, MetricList *, Histable::Type, bool); + void computeHistTotals (Hist_data *, MetricList *); + void computeHistData (Hist_data *, MetricList *, Hist_data::Mode, Histable *); + + Vector<FileData*> *fDataObjs; + Vector<FileData*> *fDataObjsFile; + Vector<FileData*> *fDataObjsVfd; + Vector<FileData*> *fDataObjsCallStack; + bool hasFile; + bool hasVfd; + bool hasCallStack; + HashMap<char*, FileData*> *fDataHash; + FileData *fDataTotal; + + // list of FileData objects using the stack id as the key + DefaultMap<void*, FileData*> *fDataCalStkMap; + + // list of FileData objects using the VFD as the key + DefaultMap<long, FileData*> *fDataVfdMap; + + // the cached data for mode=Hist_Data::ALL + Hist_data *hist_data_file_all; + Hist_data *hist_data_vfd_all; + Hist_data *hist_data_callstack_all; + Hist_data *hist_data_callstack; + + DbeView *dbev; +}; + +#endif /* _IOACTIVITY_H */ |