Home | History | Annotate | only in /external/toolchain-utils/mem_tests
Up to higher level directory
NameDateSize
clean_data.py05-Oct-2017837
mem_groups.py05-Oct-20171.7K
README05-Oct-20171.3K
total_mem_actual.py05-Oct-20171,008
total_mem_sampled.py05-Oct-2017874
utils.py05-Oct-2017745

README

      1 Usage
      2 -----
      3 
      4 These scripts are made to parse TCMalloc output in order to extract certain
      5 info from them.
      6 
      7 In particular, these scripts rely on the error logging system for ChromeOS in
      8 order to extract information. In order to use a script (e.g. total_mem.py), you
      9 just have the command:
     10 
     11 ./total_mem.py FILENAME
     12 
     13 where FILENAME is the name of the log file to be parsed.
     14 
     15 Codebase Changes
     16 ----------------
     17 
     18 There are two ideas that motivate these changes:
     19 
     20 1- Turn on TCMalloc sampling.
     21 2- Use perf to collect the sample information.
     22 
     23 The following files have to be changed:
     24 
     25 in chrome/browser/metrics/perf_provider_chrome_os:
     26 
     27 add:
     28     #include "third_party/tcmalloc/chromium/src/gperftools/malloc_extension.h"
     29 
     30 Change the perf profiling interval to something small (60*1000 milliseconds).
     31 
     32 inside DoPeriodicCollection, insert the following code:
     33 
     34     std::string output;
     35     char* chr_arr = new char[9999];
     36     MallocExtension::instance() ->GetHeapSample(&output);
     37     MallocExtension::instance() ->GetStats(chr_arr, 9999);
     38     LOG(ERROR) << "Output Heap Data: ";
     39     LOG(ERROR) << output;
     40     LOG(ERROR) << "Output Heap Stats: ";
     41     output = "";
     42     for (unsigned int i = 0; i < strlen(chr_arr); i++) {
     43         output += chr_arr[i];
     44     }
     45     LOG(ERROR) << output;
     46     delete[] chr_arr;
     47