Profiling Dynamic Data Access Patterns with Controlled Overhead and Quality