On the 0x431 day of Apache Harmony Naveen Neelakantam wrote: > On Apr 25, 2008, at 10:32 AM, Egor Pasko wrote: > > > On the 0x431 day of Apache Harmony Naveen Neelakantam wrote: > >> On Apr 25, 2008, at 8:35 AM, Egor Pasko wrote: > >> > >>>> The problem is that a staged optimizing-compiler (e.g. > >>>> server.emconf) > >>>> can make it difficult to isolate the performance effects of a > >>>> particular compiler optimization or GC algorithm because the > >>>> compiler > >>>> runs concurrently with the application/GC. > >>>> > >>>> A reasonable solution to this problem is the following: > >>>> 1) Run the application with the staged compiler enabled and > >>>> collect a > >>>> log of its actions. > >>>> 2) When measuring performance, run the application twice in a row, > >>>> within the same JVM instance. During the first run the JVM > >>>> consumes > >>>> the log produced in (1) and uses it to optimize the code exactly > >>>> the > >>>> same as in (1). During the second run the compiler is disabled and > >>>> measurements are made. > >>> > >>> then just dump profile at EdgeProfilerAnnotationPass and then reload > >>> in (2). Should solve the problem, IMHO. > >> > >> Really? That seems insufficient because of value-profile-based > >> devirtualization. The edge profile is only part of the story right? > > > > Oh, I forgot. Nice catch! same in GuardedDevirtualizationPass. > > Phew. Ok, that's what I'm currently implementing. I'll report back > when I have something to share (hopefully a success story).
:) cool -- Egor Pasko
