Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8260302

Renaissance Neo4jAnalytics is ~2x slower after JDK 8

    XMLWordPrintable

Details

    • Bug
    • Resolution: Withdrawn
    • P4
    • None
    • 17
    • hotspot

    Description

      I have been investigating adding more Renaissance JMH to dev-submit. It appears that org.renaissance.neo4j.JmhNeo4jAnalytics has gotten almost 2x slower after JDK 8, I am not sure it is just a compilation order problem.

      In 17-b4 it spends a lot of time on some stub code.
      I am running another dev-submit to see how it looks with -TieredCompilation.



      17-b4 default tiered comp:

      ....[Hottest Regions]...............................................................................
       20.61% runtime stub StubRoutines::vectorizedMismatch (143 bytes)
        6.30% c2, level 4 org.neo4j.kernel.impl.locking.community.LockManagerImpl::accept, version 12379 (459 bytes)
        5.89% c2, level 4 scala.collection.IndexedSeqOptimized$class::foreach, version 8190 (49 bytes)
        4.34% c2, level 4 org.neo4j.kernel.impl.locking.community.LockManagerImpl::accept, version 12379 (92 bytes)
        4.08% runtime stub StubRoutines::vectorizedMismatch (190 bytes)
        4.05% c2, level 4 scala.collection.mutable.OpenHashMap$$anonfun$foreachUndeletedEntry$1::apply, version 12085 (180 bytes)
        2.08% c2, level 4 scala.collection.mutable.ArrayOps$ofRef::apply, version 9691 (76 bytes)
        1.97% c2, level 4 scala.collection.mutable.OpenHashMap::put, version 13658 (661 bytes)
        1.85% perf-1105135.map [unknown] (916 bytes)
        1.53% c2, level 4 scala.collection.mutable.OpenHashMap$$anonfun$clone$1::apply, version 14311 (884 bytes)
        1.26% c2, level 4 org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Not::isMatch, version 18347 (580 bytes)
        1.21% c2, level 4 org.neo4j.kernel.impl.locking.community.LockManagerImpl::accept, version 12379 (0 bytes)
        1.20% c2, level 4 org.neo4j.kernel.impl.locking.community.LockManagerImpl::accept, version 12379 (0 bytes)
        1.11% c2, level 4 org.neo4j.io.pagecache.impl.muninn.MuninnPageCursor::next, version 14338 (753 bytes)
        1.00% runtime stub StubRoutines::vectorizedMismatch (191 bytes)
        0.98% c2, level 4 scala.collection.mutable.OpenHashMap$$anonfun$foreach$1::apply, version 18358 (336 bytes)
        0.92% c2, level 4 scala.collection.IndexedSeqOptimized$class::foreach, version 8190 (26 bytes)
        0.91% c2, level 4 scala.collection.mutable.OpenHashMap$$anonfun$growTable$1::apply, version 18283 (319 bytes)
        0.86% c2, level 4 org.neo4j.kernel.impl.store.format.standard.NodeRecordFormat::read, version 7162 (593 bytes)
        0.80% c2, level 4 org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.CompositeBooleanPredicate$$anonfun$1::apply, version 18335 (377 bytes)
       37.04% <...other 3773 warm regions...>
      ....................................................................................................
      100.00% <totals>


      17-b4 tiered off 1 comp thread:
      ....[Hottest Regions]...............................................................................
       11.96% c2 java.util.HashMap$HashIterator::nextNode, version 368 (143 bytes)
        5.44% c2 org.neo4j.kernel.impl.locking.community.LockManagerImpl::accept, version 2471 (118 bytes)
        5.27% c2 java.util.HashMap$KeySpliterator::forEachRemaining, version 131 (143 bytes)
        3.75% c2 scala.collection.mutable.OpenHashMap$$anonfun$foreachUndeletedEntry$1::apply, version 3276 (1010 bytes)
        2.93% libjvm.so OopOopIterateDispatch<G1CMOopClosure>::Table::oop_oop_iterate<InstanceKlass, narrowOop> (571 bytes)
        2.52% libjvm.so OopOopIterateDispatch<G1RebuildRemSetClosure>::Table::oop_oop_iterate<InstanceKlass, narrowOop> (313 bytes)
        2.41% c2 scala.collection.mutable.OpenHashMap::clone, version 3411 (631 bytes)
        2.13% c2 scala.collection.mutable.OpenHashMap::scala$collection$mutable$OpenHashMap$$put, version 3318 (871 bytes)
        1.89% perf-1108267.map [unknown] (916 bytes)
        1.66% c2 org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Not::isMatch, version 5050 (420 bytes)
        1.59% c2 scala.collection.mutable.OpenHashMap::get, version 3321 (388 bytes)
        1.48% c2 org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Not::isMatch, version 5050 (574 bytes)
        1.44% libjvm.so OtherRegionsTable::add_reference (214 bytes)
        1.41% c2 scala.collection.mutable.OpenHashMap::foreach, version 5088 (319 bytes)
        1.37% libjvm.so G1RebuildRemSetTask::G1RebuildRemSetHeapRegionClosure::do_heap_region (497 bytes)
        1.17% c2 org.neo4j.kernel.impl.store.CommonAbstractStore::readIntoRecord, version 2312 (290 bytes)
        1.14% libjvm.so G1ParScanThreadState::trim_queue_to_threshold (214 bytes)
        1.13% c2 org.neo4j.kernel.impl.store.format.standard.NodeRecordFormat::read, version 2613 (568 bytes)
        1.11% libjvm.so OopOopIterateDispatch<G1CMOopClosure>::Table::oop_oop_iterate<ObjArrayKlass, narrowOop> (493 bytes)
        1.10% perf-1108267.map [unknown] (581 bytes)
       47.11% <...other 2972 warm regions...>
      ....................................................................................................
      100.00% <totals>



      8u271 default:
      ....[Hottest Regions]...............................................................................
        5.32% C2, level 4 scala.collection.mutable.OpenHashMap::scala$collection$mutable$OpenHashMap$$put, version 10696 (992 bytes)
        5.10% C2, level 4 org.neo4j.kernel.impl.locking.community.LockManagerImpl::accept, version 10978 (170 bytes)
        4.66% C2, level 4 org.neo4j.cypher.internal.runtime.interpreted.pipes.NodeIndexSeeker$class::computeIndexQueries, version 19014 (50 bytes)
        3.48% C2, level 4 org.neo4j.kernel.impl.store.format.standard.RelationshipRecordFormat::read, version 10146 (996 bytes)
        2.50% C2, level 4 scala.collection.mutable.OpenHashMap::foreach, version 16613 (703 bytes)
        2.09% C2, level 4 org.neo4j.cypher.internal.runtime.interpreted.pipes.ValueHashJoinPipe$$anonfun$3$$anonfun$apply$1::apply, version 16597 (637 bytes)
        2.07% C2, level 4 org.neo4j.cypher.internal.runtime.interpreted.pipes.NodeIndexSeeker$class::computeIndexQueries, version 19014 (386 bytes)
        2.06% perf-1106891.map [unknown] (512 bytes)
        1.76% C2, level 4 org.neo4j.kernel.impl.store.format.standard.NodeRecordFormat::read, version 6708 (520 bytes)
        1.59% C2, level 4 org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.CompositeBooleanPredicate$$anonfun$1::apply, version 16557 (544 bytes)
        1.55% C1, level 3 java.util.stream.Collectors$$Lambda$34::accept, version 1226 (126 bytes)
        1.51% C2, level 4 org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Not::isMatch, version 16449 (555 bytes)
        1.08% libjvm.so PSPromotionManager::copy_to_survivor_space<false> (100 bytes)
        0.98% C2, level 4 org.neo4j.cypher.internal.runtime.interpreted.pipes.NodeIndexSeeker$class::computeIndexQueries, version 19014 (146 bytes)
        0.94% C2, level 4 org.neo4j.cypher.internal.runtime.interpreted.pipes.ValueHashJoinPipe$$anonfun$3$$anonfun$apply$1::apply, version 16597 (171 bytes)
        0.91% C1, level 3 java.util.stream.Collectors$$Lambda$34::accept, version 1226 (126 bytes)
        0.91% C2, level 4 org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.CompositeBooleanPredicate::isMatch, version 12948 (553 bytes)
        0.91% perf-1106891.map [unknown] (774 bytes)
        0.76% libjvm.so PSPromotionManager::drain_stacks_depth (81 bytes)
        0.69% C2, level 4 org.neo4j.cypher.internal.runtime.interpreted.pipes.ExpandAllPipe$$anonfun$internalCreateResults$1$$anonfun$apply$1::apply, version 16521 (761 bytes)
       59.15% <...other 3554 warm regions...>
      ....................................................................................................
      100.00% <totals>

      Attachments

        Activity

          People

            Unassigned Unassigned
            ecaspole Eric Caspole
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: