I’m interested in porting the balanced partitioning feature currently implemented for MachO to ELF binaries (as proposed by RFC: Temporal Profiling Extension for IRPGO). This feature has shown promising results for both startup time and compressed size optimization (around 2% improvement in compressed size) on MachO, and I believe ELF binaries, particularly Android applications, could benefit from similar optimizations.
Current Status:
- Balanced partitioning for startup time and compressed size is currently MachO-specific
- IRPGO-based function ordering is target-independent and already available
- The existing implementation has demonstrated ~2% compression improvements
Proposed Work:
- Extend the balanced partitioning implementation to support ELF binaries
- Implement both compression and startup optimizations simultaneously due to their related nature
- Create a unified framework to minimize code duplication between MachO and ELF implementations
I’m looking to collaborate with others interested in this feature. If you’re working on similar optimizations or have experience with ELF binaries, I’d love to hear your thoughts.