Java 8 and Invoke Dynamic on Heroku


#1

My app on Heroku was previously on cedar with Java 7. I just updated to
cedar-14 and Java 8.

One thing I was wary of was big performance problems because of invoke
dynamic being set to true when JRuby detected Java 8, as described in
these
issues:

https://github.com/jruby/jruby/issues/1858
https://github.com/jruby/jruby/issues/1569

But I haven’t seen any problem so far. Maybe for some reason invoke
dynamic
is actually still off for me? Is there a way I check this at runtime in
irb?

John


#2

The Ruby buildpack automatically sets the JRUBY_OPTS environment
variable with -Xcompile.invokedynamic=false. So invoke dynamic will be
off by default. You can confirm this by running heroku config.

On Wed, Mar 18, 2015 at 3:14 AM, John Joseph B.


#3

On Wed, Mar 18, 2015 at 3:30 AM, Joe K. removed_email_address@domain.invalid wrote:

The Ruby buildpack automatically sets the JRUBY_OPTS environment variable
with -Xcompile.invokedynamic=false. So invoke dynamic will be off by
default. You can confirm this by running heroku config.

Ahh okay, that explains it. Thanks!

(Since the buildpack sets it, it can’t be seem from heroku config, but
I
see it in my dyno environment:)

~ *$ *env | grep JRUBY

JRUBY_OPTS=-Xcompile.invokedynamic=false

~ *$ *env | grep JAVA

JAVA_OPTS=-Xms750m -Xmx750m -Xss512k -XX:+UseCompressedOops

JAVA_TOOL_OPTIONS=-Xmx768m -Djava.rmi.server.useCodebaseOnly=true