hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars Hofhansl (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15431) A bunch of methods are hot and too big to be inlined
Date Thu, 10 Mar 2016 07:15:41 GMT

    [ https://issues.apache.org/jira/browse/HBASE-15431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15188823#comment-15188823

Lars Hofhansl commented on HBASE-15431:

bq. Was 1010 enough to get the list of methods inlined?

Yep. The largest is 1006 bytes. After that I no longer see any "hot method too big" messages.
But performance actually seemed to be slower. So maybe this is a dud...? I looked into breaking
up StoreScanner.next(...), it's pretty messy now, with many exits (continue with the loop,
break out of loop, return from the method with result true, return with false, etc). What
we want to do is breaking up the larger method so that hot code is separate from the not so
hot code. So in StoreScanner.next we'd try to more DONE, DONE_SCAN, maybe XXX_SEEK code to
separate methods. That would allow the more frequent and very hot SKIP and INCLUDE code paths
to be inlined... But as I said, it's not a trivial quick fix, it's need to rethinking of the
structure of this method. Others are similar.

> A bunch of methods are hot and too big to be inlined
> ----------------------------------------------------
>                 Key: HBASE-15431
>                 URL: https://issues.apache.org/jira/browse/HBASE-15431
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Lars Hofhansl
>         Attachments: hotMethods.txt
> I ran HBase with "-XX:+PrintCompilation -XX:+UnlockDiagnosticVMOptions -XX:+PrintInlining"
and then looked for "hot method too big" log lines.
> I'll attach a log of those messages.
> I tried to increase -XX:FreqInlineSize to 1010 to inline all these methods (as long as
they're hot, but actually didn't see any improvement).
> In all cases I primed the JVM to make sure the JVM gets a chance to profile the methods
and decide whether they're hot or not.

This message was sent by Atlassian JIRA

View raw message