chrometrace.py 971 B

123456789101112131415161718192021222324252627282930313233
  1. import json
  2. import os
  3. import library.python.import_tracing.lib.converters.base as base_converter
  4. class ChromiumTraceConverter(base_converter.BaseTraceConverter):
  5. @staticmethod
  6. def _yield_in_chrome_trace_format(events, pid):
  7. for event in events:
  8. yield {
  9. "cat": event.modname,
  10. "name": event.filename,
  11. "ph": "B",
  12. "ts": event.start_time,
  13. "pid": pid,
  14. "tid": event.tid,
  15. "args": {},
  16. }
  17. yield {
  18. "cat": event.modname,
  19. "name": event.filename,
  20. "ph": "E",
  21. "ts": event.end_time,
  22. "pid": pid,
  23. "tid": event.tid,
  24. }
  25. def dump(self, events, filepath):
  26. pid = os.getpid()
  27. with open(filepath, "w") as file:
  28. file.write(json.dumps(tuple(self._yield_in_chrome_trace_format(events, pid))))