commit | 26ff929fa7ca499b604bd260b1ea36b298e687f7 | [log] [tgz] |
---|---|---|
author | Primiano Tucci <primiano@google.com> | Tue Jan 30 00:37:01 2024 +0000 |
committer | Primiano Tucci <primiano@google.com> | Tue Jan 30 00:38:38 2024 +0000 |
tree | 552f8f335efe0ba33a65bbf18dc93a56d6ae7027 | |
parent | d06bef7807a8b90de9bce77132e188f68459a714 [diff] |
Optimize binary size of syscall tables The syscall tables were implemented as an array of const char* strings. Each of them required a relocation entry of 8 bytes each, wasting both binary size and dirty memory at load time. This CL stores the syscall table as a single string (per table) separating each syscall with a \0, and an array of offsets into that string. On the standalone arm64 release build this saves File size: -65KB (before:1,034,864 after:969,328) ELF sections: .rela.dyn before:0x022d58 after:0x016f38 = -48K .rodata before:0x00e34f after:0x00f36f = +4KB .data.rel.ro before:0x015bf8 after:0x011c98 = -16KB Bug: 321830256 Change-Id: I555588166b93053322448b962d52e2f4fdbff219
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.