mercurial/statprof.py
changeset 40197 113adb1b3f24
parent 40196 2864f8d3fcd6
child 40198 9d3034348c4f
equal deleted inserted replaced
40196:2864f8d3fcd6 40197:113adb1b3f24
   358 
   358 
   359 def save_data(path):
   359 def save_data(path):
   360     with open(path, 'w+') as file:
   360     with open(path, 'w+') as file:
   361         file.write("%f %f\n" % state.accumulated_time)
   361         file.write("%f %f\n" % state.accumulated_time)
   362         for sample in state.samples:
   362         for sample in state.samples:
   363             time = str(sample.time)
   363             time = sample.time
   364             stack = sample.stack
   364             stack = sample.stack
   365             sites = ['\1'.join([s.path, str(s.lineno), s.function])
   365             sites = ['\1'.join([s.path, str(s.lineno), s.function])
   366                      for s in stack]
   366                      for s in stack]
   367             file.write("%s\0%s\n" % (time, '\0'.join(sites)))
   367             file.write("%d\0%s\n" % (time, '\0'.join(sites)))
   368 
   368 
   369 def load_data(path):
   369 def load_data(path):
   370     lines = open(path, 'r').read().splitlines()
   370     lines = open(path, 'r').read().splitlines()
   371 
   371 
   372     state.accumulated_time = [float(value) for value in lines[0].split()]
   372     state.accumulated_time = [float(value) for value in lines[0].split()]
   564             if stat.selfpercent() > 1:
   564             if stat.selfpercent() > 1:
   565                 source = stat.site.getsource(25)
   565                 source = stat.site.getsource(25)
   566                 stattuple = (stat.selfpercent(), stat.selfseconds(),
   566                 stattuple = (stat.selfpercent(), stat.selfseconds(),
   567                              stat.site.lineno, source)
   567                              stat.site.lineno, source)
   568 
   568 
   569                 print('%33.0f%% %6.2f   line %s: %s' % (stattuple), file=fp)
   569                 print('%33.0f%% %6.2f   line %d: %s' % (stattuple), file=fp)
   570 
   570 
   571 def display_about_method(data, fp, function=None, **kwargs):
   571 def display_about_method(data, fp, function=None, **kwargs):
   572     if function is None:
   572     if function is None:
   573         raise Exception("Invalid function")
   573         raise Exception("Invalid function")
   574 
   574 
   732             lines[line] = lines[line] + 1
   732             lines[line] = lines[line] + 1
   733         else:
   733         else:
   734             lines[line] = 1
   734             lines[line] = 1
   735 
   735 
   736     for line, count in lines.iteritems():
   736     for line, count in lines.iteritems():
   737         file.write("%s %s\n" % (line, count))
   737         file.write("%s %d\n" % (line, count))
   738 
   738 
   739     file.close()
   739     file.close()
   740 
   740 
   741     if outputfile is None:
   741     if outputfile is None:
   742         outputfile = '~/flamegraph.svg'
   742         outputfile = '~/flamegraph.svg'