  The growing gap between processor and memory speeds results in complex memory
hierarchies as processors evolve to mitigate such divergence by taking
advantage of the locality of reference. In this direction, the BSC performance
analysis tools have been recently extended to provide insight relative to the
application memory accesses depicting their temporal and spatial
characteristics, correlating with the source-code and the achieved performance
simultaneously. These extensions rely on the Precise Event-Based Sampling
(PEBS) mechanism available in recent Intel processors to capture information
regarding the application memory accesses. The sampled information is later
combined with the Folding technique to represent a detailed temporal evolution
of the memory accesses and in conjunction with the achieved performance and the
source-code counterpart. The results obtained from the combination of these
tools help not only application developers but also processor architects to
understand better how the application behaves and how the system performs. In
this paper, we describe a tighter integration of the sampling mechanism into
the monitoring package. We also demonstrate the value of the complete workflow
by exploring already optimized state--of--the--art benchmarks, providing
detailed insight of their memory access behavior. We have taken advantage of
this insight to apply small modifications that improve the applications'
performance.
