You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Mikhail Fursov (JIRA)" <ji...@apache.org> on 2008/01/11 10:32:34 UTC

[jira] Commented: (HARMONY-5356) [drlvm][startup][performance] Delayed recompilation implementation

    [ https://issues.apache.org/jira/browse/HARMONY-5356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12557945#action_12557945 ] 

Mikhail Fursov commented on HARMONY-5356:
-----------------------------------------

Aleksey, 
is it correct that 'delayTimeout' value is not used at all in profile collector?

> [drlvm][startup][performance] Delayed recompilation implementation
> ------------------------------------------------------------------
>
>                 Key: HARMONY-5356
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5356
>             Project: Harmony
>          Issue Type: Sub-task
>            Reporter: Aleksey Shipilev
>         Attachments: vm-delayprofiler-1.patch
>
>
> Now, client JIT chains look like this:
> chains=chain1,chain2
> chain1.jits=JET_CLINIT
> chain2.jits=JET_DPGO,CD_OPT
> chain1.filter=+::<clinit>
> chain1.filter=-
> JET_CLINIT.file=jitrino
> JET_DPGO.file=jitrino
> CD_OPT.file=jitrino
> JET_DPGO.genProfile=EB_PROF
> EB_PROF.profilerType=EB_PROFILER
> CD_OPT.useProfile=EB_PROF
> So, all methods (except constructors) are passing through JET_DPGO with EB_PROF attached and then will be recompiled by CD_OPT. One should note that this will cause concurrency between on-going _recompilation_ and first-time JET compilation. So, if first-time JET compilation speed is important for startup, then we should separate these two processes in time. That is, let's compile all in the bunch with JET and only then start to recompile with OPT.
> That is, we can either:
>  a. Set the thresholds for EB_PROF such as recompilation would held later
>  b. Introduce new step (e.g. JET_QUICK) which would compile really fast (even without profile) and wait before inducing recompilation. 
> Current architecture of Jitrino requires some profiler to do the notification for traversing the JITs chain, so attached patch introduces dummy DELAY_PROFILER which simply waits desired time. 
> So, we will have:
> chains=chain1,chain2
> chain1.jits=JET_CLINIT
> chain2.jits=JET_QUICK,JET_DPGO,CD_OPT
> chain1.filter=+::<clinit>
> chain1.filter=-
> JET_CLINIT.file=jitrino
> JET_QUICK.file=jitrino
> JET_DPGO.file=jitrino
> CD_OPT.file=jitrino
> JET_DPGO.genProfile=EB_PROF
> EB_PROF.profilerType=EB_PROFILER
> CD_OPT.useProfile=EB_PROF
> JET_QUICK.genProfile=DL_PROF
> DL_PROF.profilerType=DL_PROFILER
> DL_PROF.initialTimeout=0
> DL_PROF.delayTimeout=100

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.