You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Michael Miller (JIRA)" <ji...@apache.org> on 2017/04/11 19:59:42 UTC
[jira] [Created] (ACCUMULO-4621) Refactor hot methods for JIT
optimization
Michael Miller created ACCUMULO-4621:
----------------------------------------
Summary: Refactor hot methods for JIT optimization
Key: ACCUMULO-4621
URL: https://issues.apache.org/jira/browse/ACCUMULO-4621
Project: Accumulo
Issue Type: Improvement
Components: client, fate, tserver
Reporter: Michael Miller
Fix For: 1.8.2, 2.0.0
I did some analysis of how well the JIT compiler optimizes Accumulo code by running tests locally in JMH and against a single local instance of Uno. To print what the JIT compiler was doing, I used the following java options:
{code}
-XX:+PrintCompilation
-XX:+UnlockDiagnosticVMOptions
-XX:+PrintInlining
{code}
Then I would grep the output for "accumulo" and "hot method too big". Here is the list of methods I compiled from the tests I did on both client and server.:
{code}
org.apache.accumulo.core.client.impl.TabletLocatorImpl::processInvalidated
org.apache.accumulo.core.client.impl.ThriftScanner::scan
org.apache.accumulo.core.data.Key::equals
org.apache.accumulo.core.data.thrift.TMutation$TMutationStandardScheme::read
org.apache.accumulo.core.file.rfile.RFile$LocalityGroupReader::_seek
org.apache.accumulo.core.file.rfile.RelativeKey::<init>
org.apache.accumulo.core.file.rfile.RelativeKey::readFields
org.apache.accumulo.core.security.ColumnVisibility$ColumnVisibilityParser::parse_
org.apache.accumulo.fate.zookeeper.ZooCache$2::run
org.apache.accumulo.server.constraints.MetadataConstraints::check
org.apache.accumulo.server.master.LiveTServerSet::checkServer
org.apache.accumulo.tserver.FileManager::reserveReaders
org.apache.accumulo.tserver.constraints.ConstraintChecker::check
org.apache.accumulo.tserver.scan.NextBatchTask::run
org.apache.accumulo.tserver.tablet.ScanDataSource::createIterator
org.apache.accumulo.tserver.tablet.Scanner::read
{code}
This work was inspired by this blog post: https://techblug.wordpress.com/2013/08/19/java-jit-compiler-inlining/
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)