Laden Sie Ihr Gehirn direkt auf! Laufzeit, Compiler und Performance bei Joker 2018

Viele von uns besuchen Java-Konferenzen nur wegen des Hardcore. In diesem Artikel geht es darum, was sich in dieser Hinsicht im Laufe des Jahres geändert hat.


Es gibt verschiedene Arten von Hardcore. Sie können mindestens Folgendes auswählen:


  • Leistungsoptimierungen in allen Erscheinungsformen;
  • Interna ziemlich komplexer Technologien (OpenJDK, GraalVM);
  • Compiler und Laufzeiten im Allgemeinen;
  • Design von Programmiersprachen;
  • Probleme der Informatik und angewandten Mathematik;
  • und vieles mehr.



Was ist der Unterschied zwischen einem regulären Gespräch und einem Hardcore-Gespräch? Dies ist wie der Unterschied zwischen einem Artikel über die Quantengravitation und einem Leitfaden für schmackhafte und gesunde Lebensmittel. Die richtige Vorbereitung des Frühlings ist natürlich eine sehr schwierige und interessante Aufgabe, die für viele von uns einen großen Teil der täglichen Aufgaben ausmacht, und dementsprechend sind die Berichte von Zhenya Borisov von großer praktischer Bedeutung. Grob gesagt ist dies ein Weg, ein besserer Spezialist zu werden und mehr Geld zu sammeln. Aber das Glitzern entfernter Sterne ist nicht da.


Deshalb - nur Hardcore nach den Legenden der alten Schule. Unter dem Schnitt befindet sich eine kleine Notiz darüber, wie alles aus der Sicht einer Person aussieht, die davon besessen ist, Artikel zu lesen, Berichte zu besuchen und YouTube-Videos auf Java im weiteren Sinne des Wortes anzusehen.


Erstens gehen viele überhaupt nicht zu Berichten und schauen sich keine Videos von Technologieentwicklern an. Dies ist natürlich völliger Müll, da man nur von dort aus einen wirklich kräftigen Hardcore bekommen kann. Niemand braucht einen dünnen Hardcore!


Für mich sind die wichtigsten Informationsquellen Mailinglisten verschiedener OpenJDK-Projekte, Commits für das Repository, Benachrichtigungen auf GitHub, Hochtöner von Entwicklern und RSS-Projekte.


In der Regel handelt es sich dabei um Live-Informationen, die in keiner Weise systematisiert sind und unglaublich viel Zeit in Anspruch nehmen. Um das Wort "Ewigkeit" aus den Buchstaben "Trüffel" hinzuzufügen, müssen Sie viel Zeit und Energie töten. Ich ging ein paar Stunden schlafen - und dort waren sie bereits nummeriert:



Daher gibt es solche besonders zum Scheitern verurteilten Menschen - Java Hub Hub-Autoren -, die all dies lesen, in Bedeutungseinheiten packen und daraus Artikel und Berichte erstellen.


Andererseits habe ich einmal die Konferenzen der JUG.ru-Gruppe kennengelernt und bin festgefahren. So festgefahren, dass er sogar hierher kam, um zu arbeiten. Bald werde ich das Jahr mit der Firma feiern. All diese lebendigen Aktivitäten nach dem Schreiben werden benötigt, um mehr Menschen heiliges Wissen zu vermitteln. Dies ist nur der Moment, in dem jeder im Frühjahr eine Webanwendung für Sie codieren kann, aber Sie können sie auf Habr nicht beschreiben ... Sie werden es nicht selbst tun - niemand wird es tun. Meine Spezialität sind Konferenzberichte.


Die Konferenzen haben einen besonderen Stil und Spaß. Der Sprecher muss sein Wissen notgedrungen systematisieren, bevor er die Bühne betritt. Der Sprecher sollte sie regelmäßig aktualisieren, da niemand einen schlechten Bericht benötigt. Der Redner sollte schnell und entschlossen von der Bühne oder im Diskussionsbereich antworten, sonst wird ihn jeder als Betrüger betrachten. Kurz gesagt, auf der Konferenz schuldet Ihnen der Redner eine Menge solcher Dinge, die Sie auf einem Github fragen, zum Teufel geschickt oder sechs Monate lang Antworten herausgedrückt würden.


Es gibt zwei Hauptkonferenzen für mich: JVMLS und unseren Joker . Das heißt, es gibt viele Konferenzen auf der Welt, aber diese beiden reichen aus, damit ich nächstes Jahr beschäftigt bin.


Wenn mit JVMLS alles klar ist, ist Joker eine spezielle multifunktionale Sache, mit der Sie alles über die Java-Entwicklung verstehen können. Sie ist bekannt und beliebt für Hardcore und Zinn.


Vergleichen wir ein wenig das Format, das es war -> es wurde.


Trends des ausgehenden Jahres


Wie Sie wissen, formuliert das Programmkomitee ein Programm nicht zufällig, sondern basierend auf den Vorlieben des Publikums und beliebten Themen. Eine Konferenz ist kein Analogon zu Dokumentation oder Kochbuch, sondern größtenteils ein soziales Konstrukt, das auf den Interessen der Menschen zu einem bestimmten Zeitpunkt und an einem bestimmten geografischen Ort basiert. Relativ gesehen unterschieden sich die Java-Konferenzen 2014 in Indien stark vom Joker. Was hatten wir 2017?


Es war ein Jahr, das vom Zeichen von Java 9 mit seinen Modulen und einigen neuen außergewöhnlichen Freiheiten in ihren eigenen Lösungen geprägt war.


Bis zu zwei Berichte über den Gral. Talinger mit dem ersten Bericht über den Gral, in dem einfach angekündigt wurde, dass sie die wichtigsten Twitter-Dienste auf ihn übertragen haben, und es stellte sich sehr gut heraus. Chris Seaton mit einem detaillierten Bericht darüber, wie alles im Inneren funktioniert .


JIT vs AOT von Ionut Balosin von Luxoft und eine Geschichte über das neue JIT in Azul Zing von Arthur Pilipenko.


Lipsky mit einem aktuellen Vortrag über Module in Java 9 . Im Allgemeinen gab es viel Hype um Java 9 am Rande.


Ein cooler Bericht von Nitsan Wakart über Profiler , sperrfreie Algorithmen von Nikita Koval und natürlich ein Bericht von Lyosha Shipilev über Shinanda .




Schlussfolgerungen : Letztes Jahr waren Details der JDK 9-Implementierung und -Module interessant - alle waren mit dieser stillen Revolution ein wenig außer Kontakt. Wie üblich waren alle aktiv an den Eingeweiden von JIT / AOT interessiert, insbesondere an Open-Source-GraalVM, den neuen GCs (es gab zu diesem Zeitpunkt kein ZGC, aber Shinanda), und nicht zuletzt war es bereits ein klassisches Multithreading.


Unsere Zeit


Erstens leben wir jetzt in einer Welt, in der Java 9 und Java 10 nicht mehr existieren. Es gibt einige wilde Leute, die anbieten, zuerst auf JDK 10 zu migrieren, damit es später einfacher ist, auf 11 zu kriechen, aber das ist seltsam. Wir leben in einer Welt mit wachsender Dynamik JDK 11, das am meisten diskutierte Thema der letzten Tage - "Wird Java frei sein?". (Natürlich wird es bleiben, aber nicht unbedingt in Form von Oracle JDK).


Dieses Jahr der wildeste Hypanul Kotlin. Glücklicherweise wurde der Joker nicht zu einer Konferenz über Kotlin, obwohl nach der Anzahl der interessierten Entwickler und Redner, die etwas zu erzählen haben, dies leicht möglich war.


Dementsprechend erschien Kotlins Vater, Andrei Breslav, auf dem Programm mit einem Bericht über "einen Tag im Leben eines Sprachdesigners". Es ist wie ein Linuxoid, der zum Bericht von Linus Torvalds kommt, wie ein Javista, der zu Reinhold und Rose kommt. Eine lebendige Verkörperung der Sprache - mit einem Bericht und einer Stunde Kommunikation im Diskussionsbereich.


Kürzlich bin ich nach unten zu JetBrains auf Vasilyevsky gegangen, und wir haben ein Interview mit Breslav für Habr gemacht . Etwas früher hat Andrei auf dem von uns organisierten TechTrain-Festival einen Bericht erstellt. Wenn nach dem Festival noch Fragen offen sind, gibt es eine zweite Möglichkeit, diese zu stellen.




Benutzerdefinierte Compiler und Laufzeiten sind noch vorhanden. In Kürze werden wir ein Interview über Habré mit Sprechern des zukünftigen Jokers - Nikita Lipsky und Ivan Uglyansky - veröffentlichen. In diesem ziemlich großen Gespräch erfahren wir, was ExcelsiorJET ist und was an „einem Tag der Arbeit des JVM-Ingenieurs“ interessant ist. Eigentlich habe ich diese Frage genau als Ergänzung zum Antrag auf den Bericht von Breslav gestellt.


Was wird in den Berichten von Nikita und Ivan stehen? Nikita spricht über die Puzzle-Schichten und Ivan über die Innenseiten des GC. Für diejenigen, die mit ihnen nicht vertraut sind: Dies sind Entwickler von Excelsior, die tatsächlich Code für ihre eigene Implementierung von Java schreiben und über ein überaus tiefes Expertenwissen auf diesem Gebiet verfügen. ExcelsiorJET hat übrigens eine kostenlose Version - wenn Sie es noch nie ausprobiert haben, empfehle ich, es herunterzuladen und zu evaluieren. Vor kurzem geht der Kotlin-Compiler zu ihm. Beide Berichte befinden sich in derselben vierten Halle, jedoch an unterschiedlichen Tagen.




Andrey, Nikita und Ivan sind unsere Landsleute, die an der Spitze moderner Laufzeittechnologien arbeiten und mit ihren Berichten zu Joker kommen. Aber unsere anderen Landsleute werden von derselben Front aus dort sein, aber mit einem Stand im Ausstellungsbereich anstelle eines Berichts. Ich möchte Alexander Belokrylov mit Kollegen von BellSoft, die Liberica (OpenJDK-Distribution für Raspberry Pi) herstellen, separat erwähnen. Wir haben auch ein großes Interview mit ihnen vorbereitet, das in naher Zukunft veröffentlicht wird.


Geheimnis der vierten Halle, Tag eins


Beachten Sie im Allgemeinen die vierte Spalte im Joker-Programm : Es gibt eine Dose! Wenn Sie alle Berichte gleichzeitig aufrufen, können Sie nicht schmelzen.


Wenn letztes Jahr alle genug Hype und Horror um das JDK 9 und die Module hatten, dann hat sich die Infrastruktur jetzt etwas beruhigt und es wurde interessant: Hier werden wir gequält, gequält, haben alle Prüfungen überlebt und welche Art von Nishtyaki werden wir dafür bekommen?


Das erste, was ein Anwendungsprogrammierer erhalten möchte, ist ein Nishtyaki in Syntax und Bibliotheken. Und dann kommt Tagir Valeevs Bericht über den Mustervergleich , auf den wir alle seit Jahren gewartet haben. Nikolai Parlog wird eine Überprüfung von Java 11 durchführen , einschließlich des Schlüsselworts var und aller Arten von Chips in den Bibliotheken.




Der Diskurs des ersten Tages geht weiter an Nikita Lipskys Jigsaw Layers . Ich erinnere Sie daran, dass es beim letzten Mal einen ungewöhnlichen Bericht darüber gab, dass OSGi echte Probleme hat, die viele Kontroversen hervorriefen. Vielleicht sagt dir Nikita diesmal, was du tun sollst.


Und hier kommt die heimtückische vierte Halle mit Trumpfkarten herein: Pangin mit bezaubernden Punkten darüber, warum Java Speicher frisst. Ja, ja, und auch natives Gedächtnis. Leider können hier keine Kommentare abgegeben werden, da Pangin alle Berichte individuell und tiefgreifend hat.


Und gleich nach ihm wird Mark Hoffman darüber sprechen, wie die Laufzeit verdreht wird, um alle Funktionen, die wir lieben, in neuen Java-Versionen zu implementieren. Dies ist ein sehr guter Abschluss des Tages, da in einem Bericht zwei Themen gleichzeitig zusammengeführt werden: sowohl Nishtyaks in der Zunge als auch im Motorraum.


Halle vier schlägt erneut zu


Wenn sich am ersten Tag drei von fünf Berichten auf neue Java-Versionen bezogen (oder vier, je nachdem, wie Sie zählen), werden am zweiten Tag vier Berichte mit #vm und am fünften Tag die genaue Profilerstellung mit der neuen Intel-Hardware.


Fangen wir am Ende an: Der letzte Bericht stammt von Sergey Melnikov von der Raiffeisenbank. Zurück zu unserem Vergleich mit dem letzten Jahr, dies ist eine Fortsetzung des vorherigen Berichts mit JPoint. Es wird dringend empfohlen, den vorherigen Teil anzusehen. Das Video finden Sie hier. Dieses Mal werden wir mehr in Intel Processor Trace eintauchen.


Der zweite Profilierungsbericht stammt von Marcus Hirt selbst , dem Erfinder von Appeal Virtual Machines, der die JRockit JVM entwickelt hat. Soweit ich aus der Beschreibung verstanden habe (ich habe den PC nicht gefragt), werden in dem Bericht viele verschiedene Tools wie JCMD, JMX, JVMTI, JPLIS, HPROF, JFR, JMC und die Lösung realer JVM-Profilierungsprobleme mit diesem Konstruktor behandelt.


Hier haben Sie ein sehr altes Bild, wenn Sie sich erinnern:




Zwei Berichte direkt zur Laufzeit: von Oleg Shelaev und Grigory Koshelev.


Oleg Shelaev ist der einzige offizielle GraalVM-Evangelist der Welt. Ja, es gibt viele Entwickler, und Oleg ist einer. Daher wird er fast mit dem akutesten Thema der GraalVM-Welt kommen - mit dem Gerät und der Bedienung von SubstrateVM. Jedes Jahr hat ein eigenes Thema: Wenn es 2017 für den Erfolg des Berichts ausreichte, einfach die Existenz von GraalVM zu erklären, haben die Leute jetzt viele Hype-Nachrichten gelesen, versucht, sie zu verwenden, und sind auf eine Reihe von Problemen gestoßen. Es scheint, dass das Coolste hier nicht der Bericht selbst ist, sondern die Gelegenheit, Oleg im Diskussionsbereich zu erwischen, alles zu nehmen, was er gesagt hat, und klärende Fragen zu stellen.




Übrigens können Sie in unserem Chatroom @graalvm_ru im Telegramm bereits Fragen stellen (diese werden manchmal sogar beantwortet).


Wenn Sie mit GraalVM Nicht-JVM-Sprachen selbst ausführen können, zeigt ein Bericht von Grigory Koshelev eine besondere Welt der .NET- und JVM-Integration ohne Grail. Wie gefällt dir das, Elon Musk?


Und natürlich gibt es einen Bericht von Ivan Uglyansky , den wir bereits erwähnt haben. Der Bericht ist insofern einzigartig, als es um GC geht, aber er hat auch eine praktische Bedeutung. Stimmen Sie zu, normalerweise handelt es sich bei Berichten über den GC um eine Art Astronautik, die interessant zu hören ist (wenn es sich um Shipilev handelt), oder Sie können in der Mitte einschlafen (wir zeigen nicht mit den Fingern). Hier konzentrieren wir uns nicht auf den abstrakten GC-Algorithmus, sondern auf die Anforderungen des Standards und dessen tatsächliche Implementierung.


Gibt es mehr Hardcore?


Natürlich gibt es. "Jlink and Custom Runtime Image" von Yuri Artamonov kann leicht als Bericht über moderne Laufzeiten eingestuft werden. " Maxim Kazantsev von Azul Systems hat auch " Fuzzing for JVM Testing " . Man muss verstehen, dass es bei Joker so ziemlich um Hardcore geht, und selbst Josh Longs Vortrag über Reactive Spring ist nicht so einfach, wie es sich anhört.


Es bleibt weniger als ein Monat vor dem Joker, aber ich versuche immer noch, Zeit zuzuweisen und den Rest des Programms in separaten Beiträgen zu überprüfen.


Abschließend kann ich Ihnen nur raten, das gesamte Programm selbst zu sehen und, wenn es Ihnen gefällt, Tickets zu kaufen , da diese langsam teurer werden. Es ist Zeit, ja.


Source: https://habr.com/ru/post/de424237/


All Articles