lucasb has quit [Quit: Connection closed for inactivity]
<headius[m]> hmmm
<headius[m]> argument processing is way too generalized and too much bytecode
<headius[m]> bit more than I want to tackle at the moment but next thing to work on may be getting a unified way to pass args including kwargs
<headius[m]> Ok...I think I've finished what I want to do in this PR for bytecode reduction and soft indy stuff
<headius[m]> I have a long list of more complicated improvements and places we need to explore using indy better
<headius[m]> so much optimization we don't do
<headius[m]> we still emit gobs of logic for argument processing
<headius[m]> too much
<headius[m]> when we can see a single arity it's fine but all other cases have too much logic
rusk has joined #jruby
throsturx has joined #jruby
throsturx is now known as throstur
drbobbeaty has quit [Ping timeout: 245 seconds]
drbobbeaty has joined #jruby
jrafanie has joined #jruby
<headius[m]> I think I'm gonna merge this stuff today
lucasb has joined #jruby
<headius[m]> and get back to finishing load service
kiwi_24 has joined #jruby
<kiwi_24> hi guys - i installed jruby - how i can test it?
<kiwi_24> like selftests
<headius[m]> hey there! How did you install it?
<kiwi_24> download - unpack
<kiwi_24> without rvm or rbenv
<headius[m]> ok, pretty much just need to add the bin dir to PATH then
<headius[m]> as long as you have a JVM somewhere else in path you can just start using it
<kiwi_24> anouther question - is it ok - jre-8 for latest jruby?
<headius[m]> you could just try running bin/jruby -e "puts 'hello'" or bin/jirb to see it working
<kiwi_24> i can't install later jre((
<headius[m]> yeh we still recommend 8 because 9+ have some annoying but harmless warnings
<kiwi_24> latest sorry
<headius[m]> no problem at all...we will probably support 8 for a long time
<kiwi_24> wow - thank you headius - you make my day ))))
<kiwi_24> (y) (y) (y)
<headius[m]> Enjoy! And remember you can pass a --dev flag to JRuby to help startup (we still start up a bit slowly)
<kiwi_24> its ok - I just develop a small agent on solaris on sparc
<headius[m]> Oh sounds interesting
<headius[m]> I apologize in advance if we have any bugs on sparc solaris...not really a system we are able to test on easily
<headius[m]> but it should be fine
<kiwi_24> yeah - i couldn't install ruby on solaris 11.2 - version > 2.0
<kiwi_24> so decided to try jruby - jruby loooks like works perfect
<headius[m]> ah well at least we don't have that problem...as long as there's a JVM on a given platform, we will work
<headius[m]> Awesome!
<kiwi_24> yeah, thats it
<kiwi_24> will notify if i'll get any exotic issue
<headius[m]> excellent
<enebo[m]> for the rg.org test with my jit delta + 1000 per CL (which was arbitrarily large) + 300M heap I was a little over 500M for whole process size
<enebo[m]> I think it will run in 200M heap and I did not add your MH prologues
<headius[m]> compared to what before?
<enebo[m]> but then again I also was curtailing too much JITTing I suspect
<enebo[m]> 1.5G
<enebo[m]> interesting with default heap it goes to 2.5G
<enebo[m]> So tuning an app can be a massive saving in memory in production
<enebo[m]> 2.5G with 9.2.8.0ish
<enebo[m]> 1.5G was last measured for railsconf/rubykaigi
<enebo[m]> It takes quite a while to run
jrafanie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<enebo[m]> The peak perf was lower I think (but I need to do better testing to figure that out and then work on the JIT time delta stuff to not remove important stuff) but the parallel scores by 20 threads seemed super good
<headius[m]> the openjdk ergonomocs really like to eat memory now
<headius[m]> I think the default is something like 1/5 of physical is default max, which basically means it will really stretch out
<headius[m]> 1/2 of physical
<headius[m]> 5/7
<enebo[m]> In any case we have a mixture of stuff which could get us down to less than 2 MRI processes (with jemalloc) for 20 thread listener
<enebo[m]> which is insanely good tradeoff
<headius[m]> yeah that's great
<enebo[m]> err without jemalloc
<headius[m]> I can merge my PR any time
<enebo[m]> with jemalloc the calculations will change since they will use like 2x less memory (some reports of 3x)
<headius[m]> there's still too much code being generated for actually taking in and assigning arguments but mostly that's for non-specific-arity
<enebo[m]> headius: I think you should and we will just evaluate the impact of that once we have a better mechanism for measuring. You ran stuff we typically run and it seems to just be noise
<enebo[m]> I am thinking if we cannot measure it from what we use we should not hold it back for fear reasons
<headius[m]> that's the args munging prelude for def foo(a, b = 1, *c, d:, e: 1, **f)
<headius[m]> which is obviously an extreme case, but yeah
<enebo[m]> but I definitely want to measure warmup and I think we get a 2fer in the sense kares rdubya have a large app we can get some confirmation on
<headius[m]> yeah
<headius[m]> brb
<headius[m]> I'll merge in a bit then
jrafanie has joined #jruby
jrafanie has quit [Client Quit]
<headius[m]> I'm doing some alloc profiles on the branch just to make sure I have not introduced too much stuff at boot, and then I'll merge it
xardion has quit [Remote host closed the connection]
rusk has quit [Remote host closed the connection]
xardion has joined #jruby
<headius[m]> wow finding some new improvements just by caching the direct method handles
<headius[m]> rather than reacquiring them every time
<headius[m]> enebo: I started verifying branch with rails -h taking around 5.2s...now after modifying a few super hot indy literals to reuse more stuff it's down to 4.7s
<headius[m]> I'm starting to get convinced that we could have always-on indy support if we did it smartly and just bound simple sites to begin with
<headius[m]> master was around 5s fwiw
<headius[m]> this is super noisy but seems outside of noise
<enebo[m]> startup speedup is nice
<headius[m]> this is non --dev of course but could really help large app boot in production
<headius[m]> I'm going to continue auditing places where we are aqcuiring direct method handles on hot paths and make them reuse
<headius[m]> and then merge
<headius[m]> 4.55s 😃
<headius[m]> ok last commit is in
<headius[m]> I opened this for additional audits I'm not going to do right now: https://github.com/jruby/jruby/issues/5879
<headius[m]> most of the DMH used by the PR have been cleaned up, along with several that were used before
havenwood has quit [Quit: ZNC 1.7.3 - https://znc.in]
havenwood has joined #jruby
havenwood has quit [Changing host]
havenwood has joined #jruby
<headius[m]> it's in!
havenwood has quit [Quit: ZNC 1.7.3 - https://znc.in]
havenwood has joined #jruby
havenwood has quit [Changing host]
havenwood has joined #jruby
havenwood has quit [Client Quit]
havenwood has joined #jruby
havenwood has joined #jruby
havenwood has quit [Changing host]
subbu is now known as subbu|lunch
havenwood has quit [Quit: ZNC 1.7.3 - https://znc.in]
havenwood has joined #jruby
havenwood has quit [Changing host]
havenwood has joined #jruby
<enebo[m]> no doubt code cache is helping here
havenwood has quit [Quit: ZNC 1.7.3 - https://znc.in]
havenwood has joined #jruby
havenwood has quit [Changing host]
havenwood has joined #jruby
throstur has quit [Ping timeout: 265 seconds]
subbu|lunch is now known as subbu
throstur has joined #jruby
<headius[m]> caller perf fix PR has been merged also
<headius[m]> trimming my PR backlog a bit
<headius[m]> kares: enebo: I'm fine merging https://github.com/jruby/jruby/pull/5870 any time
<enebo[m]> yeah whether we age fine or not it cannot hurt to allow # of methods to jit
<enebo[m]> I am hoping almost no one would need it but it is a sanity knob with aging in a case where you just have unlimited user input or something
<headius[m]> I merged in my JI binding changes too...mostly a lateral refactor but it should cache more and reduce overall overhead
<headius[m]> more to be done there in the future to reduce boot time of JI bindings
<headius[m]> I guess at this point I'm moving back to load service wrap-up
throstur has quit [Ping timeout: 265 seconds]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
throstur has joined #jruby
havenwood has quit [Quit: ZNC 1.7.3 - https://znc.in]
havenwood has joined #jruby
havenwood has joined #jruby
havenwood has quit [Changing host]
subbu is now known as subbu|bug_fixing
subbu|bug_fixing is now known as subbu
throstur has quit [Ping timeout: 240 seconds]
throstur has joined #jruby
_whitelogger has joined #jruby