commit | 1c5c317076a85d2a9c57b18902e1b8eff7f58520 | [log] [tgz] |
---|---|---|
author | Primiano Tucci <primiano@google.com> | Fri Feb 19 14:33:13 2021 +0100 |
committer | Primiano Tucci <primiano@google.com> | Thu Feb 25 09:55:49 2021 +0000 |
tree | dfba62b014e0dbf995bb424a2d5dbc92660e1d81 | |
parent | 5a0eb94b534a629ba1f71cabc94f04cfc1bfdc0c [diff] |
Add IPC layer + Platform implementation for Windows The final CL that adds the Windows-specific IPC bits. This implements the IPC transport as a AF_UNIX socket and a named shared memory region. AF_UNIX doesn't bring any major benefits really and I wonder whether we should just use a TCP socket. In fact, AF_UNIX on Windows misses the interesting bits of UNIX sockets: (1) FD-passing is not supported; (2) Peer credentials are not supported. Given that the shared memory is based on an unguessable string, we could send that over TCP as well. Bug: 174454879 Test: manual on Windows, the following works: perfetto_unittests.exe perfetto_integrationtests.exe traced.exe + perfetto.exe stress_test.exe (there is something odd scheduling-wise here but seems unrelated with the IPC port) Change-Id: I77cb42940d8bd2ffbee2454ec8d6982781a3096b
Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.
See https://perfetto.dev/docs or the /docs/ directory for documentation.