How do we remember the last JokerConf

Last week in St. Petersburg hosted the international Java-conference Joker. We asked our guys who visited her to tell a little about the organization and the most interesting performances, in their opinion. Someone noted the most hype and fun, some - the most relevant and useful. However, read about it first-hand.







This year there were noticeably more visitors and sponsor stands, which led to minor “traffic jams” in the corridors, the exhibition area and at dinners.



The reports, as usual, were held in 4 streams plus 2 mini-streams at the demo stands in the exhibition area. In this scheme, there was always at least 1 interesting report. In between speeches, you could talk with the speaker in the discussion area or listen to mini-presentations at demo stands.



And now about the reports themselves and why go to conferences at all.







Andrey Gromov rjhdby ,

FunCorp backend developer



For me, a trip to the conference is an opportunity to get out of the everyday context. To look at familiar things from other points of view, and to strangers - just look. And the most important stuff brought from the conference is written pages in a notebook. Not with a summary of the reports, of course, but with thoughts that arose in the process of listening to them.



From this point of view, Jocker 2019 passed for me under the sign of JNI and the insides of a virtual machine.



Three reports aroused the greatest interest, not counting Baruch, who could also tell us about the accounting reports of the tent with shawarma so that you won’t tear yourself away.





A wonderful report about the internal kitchen HotSpot C2 JIT from a person who really understands this better than almost everyone.



It is unlikely that this knowledge will affect my work, but half a page in a notebook was replenished with notes marked "read" and "approach can be applied in XXX", which is cool.





Jonuts talked about some key differences in the implementation of these two compilers and their impact on performance in certain types of tasks. At first glance it seems that the report is simple: well, there, I took it and measured it, but this is only at first glance, until you delve into the details of what was told and shown. And then comes the understanding of the amount of work done by the speaker in order to show us these "simple graphs".





Blood, guts - all as I love. This person will teach you the wrong way to do the wrong, but space-fast microservices. I suspect that after this report I had to replace many chairs with burnt upholstery.

Here and about unsafe, and about mmap, and about tuning kernel parameters, and about your network stack, and about everything else under the motto "performance at the forefront"!



Evgeny Zakharov nerumb ,

FunCorp backend developer





An interesting report from an engineer from Oracle, who shared internal details of work on Valhalla. I had questions about why Valhalla did not come to Java for so long, and it was this report that answered many of them.



Value types are not so easy to implement in Java, and you have to save literally on units of "bytes". Sergey talked about some tricks they had to go in order not to change the structure of storing objects in Java and put all the necessary information in them. And what was especially surprising was that Valhalla not only makes Java faster, but there are also negative consequences. With Value types, you have to complicate the existing code, and for some situations a slight degradation in performance is obtained (although, according to Sergey, at the moment this is no more than 10% in the most negative scenarios). But active work is still underway and we hope that the Oracle team will be able to optimize the negative scenarios and finally translate Valhalla into Java.



As a bonus, Sergei asked all those who care to try Valhalla (it will soon be available in the OpenJDK assembly when the flag is turned on) and check its work on its scripts. It is highly advisable to inform the development team of the strong degradation in productivity, if any.





As always, an interesting report from Tagir, who does not need to be introduced. There was a lot of interesting things about the internal improvements that are just becoming available with the upgrade to the new version of Java. Tagir gave many examples, among which the most memorable was abs



, which, it would seem, had nowhere to optimize further. the method implementation itself consisted of just one line of code. But this method was also made faster by making it an intrinsic



method. There were many other examples where a simple switch to the next version of Java increases speed, sometimes even by several orders of magnitude, as with the same hypot



. I advise you to definitely see the report recording for those who have not yet seen it.



Oleg Zolotarev OlegXxl ,

FunCorp backend developer





Josh “annealed” the entire presentation, while the report itself very well tells about Reactive in literally all its manifestations in the latest version of Spring. They also talked about integration with RSocket (did you know that for the first time spring starter uses an unstable dependency in the stable version?). Of course, this information can be obtained from official manuals, but here it was firsthand and in aggregated form.









Baruch tore off the covers on the closing keynote of the first day, and he did quite well! From this report you will learn how and from what the DevOps ideology came from, who is the only one who implements its “interface”. It was interesting to hear about what actually is the “best code” (its DoD), and what software craftsmanship and DevOps have in common.



Unfortunately, the closing keynote of the second day was not as "flammable" as last year, when Dr. Kurpatov spoke, and the discussion of this performance in chat rooms took another month.



However, we do not go to the conference for this, but in all other respects it was a success.



Many thanks to all the organizers and speakers! See you at the next conferences!



All Articles