RFR(M): 7194669: CodeCache::mark_for_deoptimization should avoid verifying dependencies multiple times
christian.thalinger at oracle.com
Fri Jan 10 12:59:50 PST 2014
This looks good. Just a suggestion (you can ignore that if you want): GrowableArray has find() and contains() methods. If you would override operator== in DependencySignature you could use GrowableArray::find().
On Jan 10, 2014, at 5:28 AM, Albert Noll <albert.noll at oracle.com> wrote:
> I've evaluated the performance difference (nashorn + octane) between binary search
> and a linear search. The linear-search version uses one GrowableArray<DependencySignature*>
> for each dependency type. The difference in dependency checking time is 15-20%, i.e., binary
> search is 15-20% faster than linear search. However, using linear search to cache checked
> dependencies is still ~4X faster compared to checking all dependencies.
> I guess 15-20% is not enough to justify using the new data structure. Here is the new
> webrev that uses linear search:
> On 01/09/2014 06:57 PM, Roland Westrelin wrote:
>>> As I recall running some nashorn benchmarks takes about 10X more time when using fastdebug VM if VerifyDependencies is not switched off.
>> Thanks Vladimir.
>> What about simply pushing the dependency signatures to an unsorted growableArray() and doing a linear search? Maybe that’s good enough?
More information about the hotspot-compiler-dev