Hi Mikhai, As for your listed 3, we need to abstract the Data reference trace. And we won`t recode the data reference trace in all iterations of the loop, we just recode for 100, or maybe less. So the trace won`t be too large. And Chilimbi prove only profiling 50 or less iterations is suffice. The problem we must think seriously is how to abstract the Data reference trace.
Chilimbi introduced his way to abstract the data reference trace [Efficient Representations and Abstractions for Quantifying and Exploiting Data Reference Locality], I will list it. "An obvious candidate for abstracting data addresses is to use the name or type of the object that generates the address. While this apporach works for static objects, heap addresses present an additional challenge. Heap space is reused as heap data is dynamically allocated and freed. Consequently, the same heap address can correspond to different program objects during execution....." It`s the way Chilimbi used in C or C++ programs. Maybe in jvm, we can get the name or type of the object that generate the address more easily??? I need your clue. -- Best Regards, Qiong,Zou