| OLD | NEW |
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """The deep heap profiler script for Chrome.""" | 5 """The deep heap profiler script for Chrome.""" |
| 6 | 6 |
| 7 import copy | 7 import copy |
| 8 import datetime | 8 import datetime |
| 9 import json | 9 import json |
| 10 import logging | 10 import logging |
| (...skipping 926 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 937 if self._lines[ln].startswith('Time:'): | 937 if self._lines[ln].startswith('Time:'): |
| 938 matched_seconds = self._TIME_PATTERN_SECONDS.match(self._lines[ln]) | 938 matched_seconds = self._TIME_PATTERN_SECONDS.match(self._lines[ln]) |
| 939 matched_format = self._TIME_PATTERN_FORMAT.match(self._lines[ln]) | 939 matched_format = self._TIME_PATTERN_FORMAT.match(self._lines[ln]) |
| 940 if matched_format: | 940 if matched_format: |
| 941 self._time = time.mktime(datetime.datetime.strptime( | 941 self._time = time.mktime(datetime.datetime.strptime( |
| 942 matched_format.group(1), '%Y/%m/%d %H:%M:%S').timetuple()) | 942 matched_format.group(1), '%Y/%m/%d %H:%M:%S').timetuple()) |
| 943 if matched_format.group(2): | 943 if matched_format.group(2): |
| 944 self._time += float(matched_format.group(2)[1:]) / 1000.0 | 944 self._time += float(matched_format.group(2)[1:]) / 1000.0 |
| 945 elif matched_seconds: | 945 elif matched_seconds: |
| 946 self._time = float(matched_seconds.group(1)) | 946 self._time = float(matched_seconds.group(1)) |
| 947 elif self._lines[ln].startswith('Reason:'): |
| 948 pass # Nothing to do for 'Reason:' |
| 947 else: | 949 else: |
| 948 break | 950 break |
| 949 ln += 1 | 951 ln += 1 |
| 950 | 952 |
| 951 def _parse_mmap_list(self): | 953 def _parse_mmap_list(self): |
| 952 """Parses lines in self._lines as a mmap list.""" | 954 """Parses lines in self._lines as a mmap list.""" |
| 953 (ln, found) = skip_while( | 955 (ln, found) = skip_while( |
| 954 0, len(self._lines), | 956 0, len(self._lines), |
| 955 lambda n: self._lines[n] != 'MMAP_LIST:\n') | 957 lambda n: self._lines[n] != 'MMAP_LIST:\n') |
| 956 if not found: | 958 if not found: |
| (...skipping 857 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1814 errorcode = COMMANDS[action]().do(sys.argv) | 1816 errorcode = COMMANDS[action]().do(sys.argv) |
| 1815 except ParsingException, e: | 1817 except ParsingException, e: |
| 1816 errorcode = 1 | 1818 errorcode = 1 |
| 1817 sys.stderr.write('Exit by parsing error: %s\n' % e) | 1819 sys.stderr.write('Exit by parsing error: %s\n' % e) |
| 1818 | 1820 |
| 1819 return errorcode | 1821 return errorcode |
| 1820 | 1822 |
| 1821 | 1823 |
| 1822 if __name__ == '__main__': | 1824 if __name__ == '__main__': |
| 1823 sys.exit(main()) | 1825 sys.exit(main()) |
| OLD | NEW |