<GitHub54>
jruby/master de6c8bd kares: add call-sites for Time's +/- impl + cleanup related internals a bit
<GitHub54>
jruby/master deaeea6 kares: for Rational also override inspect() without arguments, on the Java end
<GitHub54>
jruby/master 546aaef kares: [refactor] improve RubyHash sub-classes used for globals e.g. ENV...
<GitHub199>
[jruby] kares created fix-2036-9.1 (+1 new commit): https://git.io/vAUSS
<GitHub199>
jruby/fix-2036-9.1 bc39a0a kares: align C ported memsearch code - need to handle array[length] properly...
<GitHub163>
[jruby] kares opened pull request #5037: align C ported memsearch code - need to handle array[length] properly (jruby-9.1...fix-2036-9.1) https://git.io/vAU9f
<headius>
kares: I had forgotten you made native Set and SortedSet
<headius>
there have been many arguments made that *Set should be thread-save, so we probably should just do that...ideally in a more efficient way than using Collections.synchronizedSet, but that would be fine initially
<headius>
I'll leave it to you to look into cremes's issue unless you need my assistance
claudiuinberlin has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
chrisseaton has left #jruby [#jruby]
<cremes>
kares, headius: my issue is unlikely related to concurrency. I take pains to ensure it’s only ever called from one thread.
<headius>
cremes: ok, thank you
<headius>
so there's something else amiss
<cremes>
yep
swills has quit [Remote host closed the connection]
<cremes>
the hash contains the item, but the TreeSet does not, so there’s something wonky with the “comparator”
<cremes>
or how identity of an object is determined
<headius>
ok
<headius>
woot, openj9 with AOT settings looks to be 30% faster startup for simple things
<headius>
I wonder if I can tweak that down more
claudiuinberlin has joined #jruby
swills has joined #jruby
swills has joined #jruby
swills_ has joined #jruby
<headius>
I wonder if openj9 AOT would make our IR persistence start up faster too
<headius>
for -e 1, hotspot clocks in at 1.5s (with our JIT and C2 turned off) and openjdk is about 1.1s (with nothing turned off)
<headius>
getting there
<headius>
boo... down to 0.5s...if I turn off the Ruby kernel and default gems that load
<headius>
unfortunately a big chunk of this is reflection cost when booting up Java integration
<headius>
kares: we might want to try playing with caching the results of reflection/binding of imported Java classes...maybe we can cut some of that overhead out
rdubya1 has quit [Quit: Leaving.]
rdubya has joined #jruby
bbrowning_away is now known as bbrowning
xardion has quit [Ping timeout: 255 seconds]
xardion has joined #jruby
<kares>
headius: well I never liked having require 'java' on by default :)
<kares>
but I guess that ship has sailed ...
<headius>
it's kinda necessary to be able to implement core stuff in Ruby
<headius>
but it's more overhead than it should be
<kares>
maybe JRuby 10 will get "modular" :)
<kares>
headius: some of it yes but there's less and less or it needed
<headius>
I regret removing the lazy loading of java integ now
<kares>
one big chunk is date.rb which I'm hoping to get rid off for 9.2 as well
<headius>
it was slow, so we made it lazy...later it didn't seem to be slow anymore so we removed laziness...now that other stuff has sped up it's slow again
<headius>
ah yeah
<kares>
except for that there should be some - not sure how many of it is booted by default
<headius>
well, if it's possible to remove all JI use in kernel, it could be lazily loaded
<kares>
well date.rb isn't booted by default so it does not matter
<headius>
the overall problem stands though...reflection is slow
<headius>
or maybe it's our method binding logic in JI
<headius>
but I think it's reflection
<kares>
but I am not sure caching will help
<kares>
what do you want to cache getMethods results?
<headius>
something like that, yes
<headius>
so it only binds the methods on each class it knows it should bind, rather than aggregating all the way up and filtering
<kares>
that might work but I wonder how much it would cut ...
<headius>
right, I don't have numbers
<kares>
JI could use a rewrite in a major version but than who has the time ;(
<kares>
so many things/features I wanted to do/redo ...
<headius>
I know what you mean
<headius>
we're still booting all the low-level Java pieces too like JavaClass
<headius>
and most are not needed anymore
<headius>
so that's another dozen classes with probably 100 methods
<headius>
we're also losing some amount of time simply loading all our invokers and populators...thousands of classes
<headius>
I suspect that's where the J9 caching is helping a lot
<kares>
sounds like J9 has some amazing new stuff of the shell
<kares>
up till now I always thought its just a slower hot-spot
<kares>
with its own set of problems such as ibm's security provider etc :)
<headius>
I know we can do better than this, because if I start up JRuby in a loop it goes down to less then 0.2s for -e 1
<headius>
yeah I'm talking to the J9 guys about tuning this better
<headius>
this 30% improvement is without doing anything but setting up a larger class cache
<kares>
nice!
<headius>
and without turning of our jit or C2
<kares>
on a different note - still planning 9.1.16 somewhere near or is it off the shell for a while?
<kares>
cremes: hey! really great that you're testing Set/SortedSet on master
<kares>
I know its probably annoying to pop into bug after a bug but its much appreciated
<kares>
do understand the issue and the details you're sharing - pretty much did the rewrite
<headius>
kares: really soon
<headius>
waiting on me to finish fixing name stuff mostly I think
<kares>
great
<headius>
heh
<headius>
we need to get these JVMs caching more of our stuff
<headius>
if I run -S gem list in a loop it goes from 2s down to 0.6s
jrafanie has joined #jruby
<cremes>
kares: I don’t mind contributing my time and effort to make sure jruby is the best it can be. I’ve been around a long time and will be around even longer. :)
<cremes>
right now I’m trying to get my code working on linux so you can fix my set problem. argh…
<cremes>
time to refactor a bit
<LiamW>
sometimes you get reminded in life that it's not always true that you'll be around longer
<LiamW>
a couple weeks ago I almost got smashed on the drivers side going through an intersection
<LiamW>
the other guy was doing 60mph and I didn't even see him until I was halfway through, I gunned it and barely made it out in front of him
xardion has quit [Remote host closed the connection]
xardion has joined #jruby
rrutkowski has joined #jruby
rrutkowski has quit [Client Quit]
rrutkowski has joined #jruby
rrutkowski has quit [Remote host closed the connection]
rrutkowski has joined #jruby
rrutkowski has quit [Client Quit]
rrutkowski has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
<cremes>
LiamW: true, true… glad you made it
shellac has joined #jruby
<enebo>
kares: one thing I have consistently said to anyone is that require 'jruby' is still required semantically because it is only happening from an impl side-effect
<enebo>
kares: but people happen to notice it is not needed so it will raise issues if we make kernel not need it
<kares>
enebo: yy I know its not to be assumed on by default
<enebo>
kares: but our documentation has never said you do not need it
<kares>
same for jruby/core_ext which is a different beast