Online Optimizations Using Hardware Performance Monitors