summaryrefslogtreecommitdiffstats
path: root/tools/deep_memory_profiler
Commit message (Collapse)AuthorAgeFilesLines
* Breakdown memory usage by source file names in dmprof.dmikurube@chromium.org2013-04-094-92/+351
| | | | | | | | | | | | dmprof has classified memory usage by pattern-matching with function names. It adds another classification by pattern-matching with source file names. BUG=225343 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/13514003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193022 0039d316-1c4b-4281-b951-d872f2087c98
* Add range_dict.py to handle a range-based dict.dmikurube@chromium.org2013-03-272-0/+275
| | | | | | | | | | | | It uses third_party bintrees internally: http://crrev.com/186589. BUG=174304 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/12974006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190811 0039d316-1c4b-4281-b951-d872f2087c98
* Dump stats of memory pages which are hooked, but absent from /proc/<pid>/maps.dmikurube@chromium.org2013-03-155-2/+27
| | | | | | | | | BUG=189114 Review URL: https://chromiumcodereview.appspot.com/12575008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188272 0039d316-1c4b-4281-b951-d872f2087c98
* Fix function names in dmprof.py.dmikurube@chromium.org2013-03-151-4/+4
| | | | | | | | | | BUG=None TBR=maruel@chromium.org NOTRY=true Review URL: https://codereview.chromium.org/12775016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188248 0039d316-1c4b-4281-b951-d872f2087c98
* Upload dumped files for dmprof into gs:// storage.dmikurube@chromium.org2013-03-1512-1/+1053
| | | | | | | | | | BUG=189157 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/12474004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188238 0039d316-1c4b-4281-b951-d872f2087c98
* Add OWNERS in deep_memory_profiler and find_runtime_symbols.dmikurube@chromium.org2013-03-131-0/+1
| | | | | | | | | | BUG=None NOTRY=true Review URL: https://chromiumcodereview.appspot.com/12775006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187859 0039d316-1c4b-4281-b951-d872f2087c98
* Dump a list of memory regions which are hooked (mmap'ed) and not hooked by ↵dmikurube@chromium.org2013-02-061-4/+6
| | | | | | | | | | | | | | the heap-profiler. It also stops to dump ".maps" files. The same information is contained in the list. BUG=174304 Review URL: https://chromiumcodereview.appspot.com/12213037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181021 0039d316-1c4b-4281-b951-d872f2087c98
* Categorize STL maps, sets, and vectors in DMP.jyasskin@chromium.org2013-01-041-1/+25
| | | | | | Review URL: https://chromiumcodereview.appspot.com/11665015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175096 0039d316-1c4b-4281-b951-d872f2087c98
* Add a test for SymbolMappingCache in tools/deep_memory_profiler/dmprof.py.dmikurube@chromium.org2012-11-272-154/+238
| | | | | | | | | | BUG=123749 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/11418130 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169564 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the shebang and executable bit from tools/deep_memory_profiler/dmprof.py.dmikurube@chromium.org2012-11-211-1/+0
| | | | | | | | | BUG=none NOTRY=true Review URL: https://codereview.chromium.org/11413112 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169011 0039d316-1c4b-4281-b951-d872f2087c98
* [check_perm] Fix !shebang issues in tools/deep_memory_profiler/dmprof.pydbeam@chromium.org2012-11-211-0/+1
| | | | | | | | | R=thestig@chromium.org,nona@chromium.org TEST=green linux check_perms bot Review URL: https://codereview.chromium.org/11411115 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168988 0039d316-1c4b-4281-b951-d872f2087c98
* Retry: Add a first test for tools/deep_memory_profiler.dmikurube@chromium.org2012-11-214-1336/+1475
| | | | | | | | | BUG=123749 Review URL: https://chromiumcodereview.appspot.com/11417048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168979 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 168389 - Add a first test for tools/deep_memory_profiler.dmikurube@chromium.org2012-11-174-1475/+1336
| | | | | | | | | | | BUG=123749 Review URL: https://codereview.chromium.org/11419046 TBR=dmikurube@chromium.org Review URL: https://codereview.chromium.org/11416060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168393 0039d316-1c4b-4281-b951-d872f2087c98
* Add a first test for tools/deep_memory_profiler.dmikurube@chromium.org2012-11-174-1336/+1475
| | | | | | | | BUG=123749 Review URL: https://codereview.chromium.org/11419046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168389 0039d316-1c4b-4281-b951-d872f2087c98
* Rename names "nonprofiled-*" to "unhooked-*" in dmprof.dmikurube@chromium.org2012-11-135-54/+54
| | | | | | | | | | | | | | | Classified groups "nonprofiled-*" meant mmap'ed regions whose stacktraces are not recorded. It renames them to "unhooked-*" since "nonprofiled-*" were very cryptic. BUG=123750 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/11377142 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167465 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor Deep Memory Profiler's dmprof script.dmikurube@chromium.org2012-10-254-1070/+1015
| | | | | | | | | BUG=123750 NOTRY=True Review URL: https://chromiumcodereview.appspot.com/11146012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164023 0039d316-1c4b-4281-b951-d872f2087c98
* Classify memory usage by allocated type in Deep Memory Profiler.dmikurube@chromium.org2012-09-266-52/+337
| | | | | | | | BUG=123758 Review URL: https://chromiumcodereview.appspot.com/10825075 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158812 0039d316-1c4b-4281-b951-d872f2087c98
* Type profiler by intercepting 'new' and 'delete' expressions.dmikurube@chromium.org2012-09-264-4/+8
| | | | | | | | | | | | | | | | | | | | It stores mapping between object's starting addresses and their allocated types when a build option 'clang_type_profiler=1' is specified. It enables information like "an object at 0x37f3c88 is an instance of std::string." Nothing is changed when the option is not specified. It depends on a modified version of the LLVM/Clang compiler introduced at deps/third_party/llvm-allocated-type. BUG=123758 TEST=build with clang_type_profiler=1 and run type_profiler_unittests and type_profiler_map_unittests manually. Review URL: https://chromiumcodereview.appspot.com/10411047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158752 0039d316-1c4b-4281-b951-d872f2087c98
* Use json to describe dmprof policies.dmikurube@chromium.org2012-08-085-14/+851
| | | | | | | | | BUG=123758 Review URL: https://chromiumcodereview.appspot.com/10824104 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150528 0039d316-1c4b-4281-b951-d872f2087c98
* Load static symbol information lazily with some clean-ups.dmikurube@chromium.org2012-07-301-64/+103
| | | | | | | | | | | | | | | | | | | | It also changes : - dmprof messages, - how to run subprocesses in prepare_symbol_info, - to prepare readelf result in prepare_symbol_info, - to rename procedure_boundaries => static_symbols, - how to parse nm results in static_symbols, - additional --keep option, - to ignore empty files, and - to store addresses in int. BUG=123749 TEST=use dmprof. Review URL: https://chromiumcodereview.appspot.com/10826008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148930 0039d316-1c4b-4281-b951-d872f2087c98
* Change dmprof commandline format, and clean up start-up routines.dmikurube@chromium.org2012-07-242-244/+514
| | | | | | | | | BUG=123749 TEST=check dmprof shows the same result. Review URL: https://chromiumcodereview.appspot.com/10802049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148138 0039d316-1c4b-4281-b951-d872f2087c98
* Use find_runtime_symbols in dmprof.dmikurube@chromium.org2012-07-232-47/+24
| | | | | | | | | | BUG=123763 TEST=use dmprof. Review URL: https://chromiumcodereview.appspot.com/10795043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147856 0039d316-1c4b-4281-b951-d872f2087c98
* Store mmap-or-not information in DeepBucket.dmikurube@chromium.org2012-07-171-119/+92
| | | | | | | | | | | | The profiler's dump format and the analyzer script dmprof are changed, too. Old dump formats get obsolete. BUG=123758 TEST=Run the deep memory profiler. Review URL: https://chromiumcodereview.appspot.com/10694130 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146968 0039d316-1c4b-4281-b951-d872f2087c98
* Use pprof in the same directory if exists, and add a downloading script.dmikurube@chromium.org2012-06-152-8/+29
| | | | | | | | | | | | | It's to use deep_memory_profiler without checking out the entire Chromium tree. BUG=123750 TEST=run download.sh and dmprof. Review URL: https://chromiumcodereview.appspot.com/10534146 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142480 0039d316-1c4b-4281-b951-d872f2087c98
* Remove multiple copies of pylintrc and use the depot_tools' version.maruel@chromium.org2012-04-251-267/+0
| | | | | | | | | | | | | | Note that dmprof is not checked by pylint at all since pylint only checks .py files. R=cmp@chromium.org TBR=dmikurube@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/10203013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133836 0039d316-1c4b-4281-b951-d872f2087c98
* Improve parsing error handling in dmprof.dmikurube@chromium.org2012-04-171-22/+44
| | | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/10096009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132541 0039d316-1c4b-4281-b951-d872f2087c98
* Breakdown nonprofiled memory regions (f.k.a. 'unknown'), and add new policy ↵dmikurube@chromium.org2012-04-136-197/+365
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | files. It breaks down nonprofiled memory regions (f.k.a. 'unknown') with using information from /proc/(pid)/maps. 'mustbezero' and 'nonprofiled-*' columns show broken down values. - mustbezero: works as a sentinel value. it should be '0'. tell dmikurube@ if it > 0. - nonprofiled-absent: works as a sentinel value. should be '0'. - nonprofiled-anonymous: may be still 'unknown'. no special info from maps. - nonprofiled-file-exec: is a mapped file here as executable. - nonprofiled-file-nonexec: is a mapped file here as non-executable. - nonprofiled-stack: is a stack. - nonprofiled-other: includes [vdso] and some small portions. It also removes dmpolicy (an old one) and adds new policy files: policy.l{0-2}.txt. The new files 'policy.l{0-2}.txt' are recommended instead of 'dmpolicy'. policy.l0.txt is the roughest, and policy.l2.txt is the finest breakdown. We can check that summation from 'FROM_HERE_FOR_TOTAL' till 'UNTIL_HERE_FOR_TOTAL' is equal to 'total-exclude-profiler'. Finally, dmprof.py is renamed into dmprof like pprof in tcmalloc. BUG=none TEST=none Review URL: http://codereview.chromium.org/9812010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132174 0039d316-1c4b-4281-b951-d872f2087c98
* Add JSON output in dmprof.py.dmikurube@chromium.org2012-04-111-4/+21
| | | | | | | | | | BUG=122119 TEST=none Review URL: http://codereview.chromium.org/10011001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131722 0039d316-1c4b-4281-b951-d872f2087c98
* Incremental update of symbol files in dmprof.py.dmikurube@chromium.org2012-04-101-17/+30
| | | | | | | | | BUG=122119 TEST=none Review URL: http://codereview.chromium.org/10005035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131541 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor dmprof.py.dmikurube@chromium.org2012-04-101-18/+13
| | | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/10006026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131536 0039d316-1c4b-4281-b951-d872f2087c98
* Fix calling NamedTemporaryFile in dmprof.py and add PRESUBMIT.py for ↵dmikurube@chromium.org2012-03-143-31/+321
| | | | | | | | | | | deep_memory_profiler. BUG=114301 TEST=none Review URL: http://codereview.chromium.org/9694046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126547 0039d316-1c4b-4281-b951-d872f2087c98
* A memory profiling script, called the deep memory profiler, which shows ↵dmikurube@chromium.org2012-03-082-0/+851
deeper information over a whole Chromium process. For example, it analyzes physical memory residence and mmap records now. More precise analysis, such as timestamps and free records, is planned to be added. The script will use dumped data from deep_heap_profile.{h|cc} in third_party/tcmalloc/chromium. BUG=114301 TEST=none Review URL: http://codereview.chromium.org/9283010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125683 0039d316-1c4b-4281-b951-d872f2087c98