<TimUckun[m]>
Hello again. I have finally gotten around to fixing the broken rack benchmarks on the techempower benchmark suite. I am now trying to run the benchmarks on jruby but am having problems building the docker file.
<TimUckun[m]>
The docker build fails at various gems because it can't build native extensions
<TimUckun[m]>
I tried limiting them to ruby and windows platforms but it also fails at building jdbc-postgres
<donv[m]>
<headius> "donv: Good news! At the end of..." <- Great! Glad to hear the presentation went well. :) I have now fixed all known problems with using JRuby 9.4.2.0 in the POC and updated the tooling. So now we can generate new applications using JRuby 9.4.2.0 with the tooling (ruboto/ruboto).
<TimUckun[m]>
Once I get past this point I would also like to make sure the proper optimizations are applied in terms of java and jruby opts, max database connections etc.
<headius>
donv: All problems except the Android bug I assume?
<headius>
we may need to work around that since it's going to be in released 13 until fixed and people can update
<headius>
Tim Uckun: It shouldn't be trying to build anything for jdbc-postgres
<headius>
it depends how many are likely to be blocking on external IO
<headius>
if they don't block much then it will be CPU-bound and based on number of cores
<TimUckun[m]>
all of them given there are database calls
<headius>
yes but 2n may be enough to keep CPU busy while DB requests are being handled
<TimUckun[m]>
except for the plain text and json tests which are simple and no database calls
<headius>
and this runs everything on the same system so even if it's blocking on DB then a CPU will be consmed doing DB work
<headius>
if it doesn't seem to max all CPUs then we can tune it upwards
<TimUckun[m]>
BTW the PG gem has been updated to try and do everything Async and now also supports fibers
<headius>
I have generally had good results with 2n with local docker PG
<TimUckun[m]>
sequel also has an async way to running queries but I ran into a bug. Jeremy knows about the problem
<headius>
yeah PG gem is probably not going to be supported for us any time soon but JVM fibers work ok with jdbc postgres in theory
<headius>
we'll cross that bridge once we can run falcon
<TimUckun[m]>
For now I'll do the two times procs
<headius>
golden path right now is puma + sequel + jdbc until we can expand support
<TimUckun[m]>
Good news. The bechmark suite verified
<TimUckun[m]>
just pushed my changes
<TimUckun[m]>
Tomorrow I'll run the benchmarks proper and report back. I am sure lots of fine tuning can be done
<headius>
that's great, good progress
<TimUckun[m]>
Should I also look into doing something with warbler and jetty? Would that be significantly faster?
<headius>
once we have the benchmarks running I can help profile and see where we can improve
<TimUckun[m]>
or maybe just invoking config.ru without going through puma?
<headius>
warbler/war/jar-based deployments for JRuby generally were not faster, and that line of code is a bit out of date anyway right now
<headius>
it's a deployment choice, not a performance choice
<headius>
we're going to get warbler and jruby-rack updated to run well again and run fast but it's not in the immediately future
<TimUckun[m]>
ok
<TimUckun[m]>
It will be interesting to see how the updated ruby code runs on the benchmarks
<TimUckun[m]>
I just got done updating the roda benchmarks and on my machine the updated code (ruby 3.2 yjit) ran about 30% faster than the older version
<headius>
nice
<TimUckun[m]>
anyway I really need to get to bed. Good night (or day or morning wherever you are)
<headius>
yjit is definitely helping
<headius>
yeah I'll be in the office this week on US time and monitoring Matrix a lot