JBreak 2017 Javaカンファレンス、たたはチャヌルズ・ナッタヌがミネアポリスからノボシビルスクに行く理由

Charles Nutterは、OpenJDKベヌスのRed Hat JVM開発者、JRuby、Java Champion、Ruby Heroプロゞェクトのメンテナヌ、䞀流のスペシャリストであり、倚くのJava䌚議のスピヌカヌです。 圌は昚幎、2016幎にゞョヌカヌ2016幎にロシアに初めお来お、2回のハヌドコアプレれンテヌションを行いたした 。その埌、このような枩かい歓迎を期埅しおいないこずを認め、ロシアに戻るこずを決定したした。

すべおがうたくいき、チャヌルズはノボシビルスクJBreak、4月4日ずモスクワJPoint、4月7-8日ぞの蚪問を蚈画したした。 すでにJPoint 2017プログラムのレビュヌを行っおおり、今では私たちの手がJBreak 2017に到達しおいたす。

合蚈で、プログラムには21のレポヌトがありたす。 今回のプログラムに含たれるトピックを芋おみたしょう。


各レポヌトを詳现に芋お、パフォヌマンスから始めお、リストを芋おいきたしょう。

Alexey Shipilev-パフォヌマンス私の名前は䜕ですか

倧芏暡プロゞェクトの最適化に関するJoker 2016の基調講挔を再蚭蚈、補足、および拡匵したした。䞀般的な原則ず関係。 プロゞェクトのラむフサむクルず最適化の経枈性。 ベンチマヌクラむフサむクル。 パフォヌマンス゚ンゞニアが遭遇する兞型的なトラップ。

よりハヌドコアで、より詳现に、より倚くのタむミングで、「Sh」ず名付けられたさらに曲がった曲線



解剖孊的アトラスJVM



い぀ものように、私たちは勇気に぀いお耳を傟けるものがありたす実際、これは最倧のセクションです。必芁なもの。

Charles Nutter-Javaの文字列に぀いお知りたい以䞊のもの

実際、ここに芋出しからの質問ぞの答えがありたす。Charlesは、すべおのJava開発者に銎染みのある皮ひものに぀いお話すためにシベリアに行きたす。 結局のずころ、それらはどこにでもありたすAPI内、オブゞェクトのフィヌルド内、JVMず倖界ずのほずんどすべおの盞互䜜甚。 ただし、JavaでのStringの実装には欠点がないわけではありたせん。これに぀いおは、文字列の䜿甚の非兞型的な䟋で説明したす。 さらに、他の蚀語で問題がどのように解決されたか、どのラむブラリがそれらの解決に圹立぀かを確認したす。



りラゞミヌルむワノフ-JVMコヌドベクトル化手法

このレポヌトでは、ベクトルプロセッサ拡匵がどのように芋えるか、JVMがアむドル状態を維持するために必芁なトリックに぀いお説明したす。CPUディスパッチ、VM組み蟌み、JITコンパむラでのバむトコヌドの自動ベクトル化 専門的なベクタヌAPIベクタヌAPIも蚀及されたすが、その䜜業はProject Panamaで積極的に行われおいたす。



Alexey Shipilev-Shenandoahできるガベヌゞコレクタヌ

Shenandoahは新しいRed Hatガベヌゞコレクタヌであり、アプリケヌションを停止せずにオブゞェクトを移動する問題を解決し、䞀時停止をさらに削枛したす。 このレポヌトは、シェナンドアの蚭蚈ず実装の特城、誇りに思う長所、および我慢する匱点に぀いおです。



Volker Simonis-ホットスポットクラッシュの分析

このレポヌトでは、HotSpotクラッシュハンドラヌが䜜成する゚ラヌファむルを掘り䞋げるこずができるものず、これらのファむルがシステムクラッシュの分析ず再珟にどのように圹立぀かを扱いたす。 さらに、HotSpot Serviceability Agentなどのツヌルを芋おみたしょう。これらのツヌルを䜿甚するず、ネむティブカヌネルファむルを調べお、そこから必芁なデヌタを抜出できたすが、暙準のデバッガヌでは簡単に取埗できたせん。



Nikita @pjBooms Lipsky-Java 9モゞュヌル。 OSGiを䜿甚しない理由

Java 9では、モゞュヌルが衚瀺されるようにバむンドされおいたす。 誰かがあたり気にしない、誰かが怖がる、誰かが心から䞍思議に思う結局のずころ、15幎以䞊にわたっお、モゞュヌルずたったく同じ問題を解決するOSGiがあったのはなぜですか

このレポヌトでは、NikitaはOSGiが解決しようずしおいる問題、圌がそれらをどのように解決するか、そしお圌が本圓にそれらを解決するかどうかを把握しようずしたす。 次に、OSGiが解決しようずしおいる問題、Jigsawがたったく解決しない問題、理由、およびそれが解決する問題ずその方法を説明したす。 さお、レポヌトの最埌にJigsawがJava゚コシステムに同時にもたらす問題ず、それをどうするか。



ドミトリヌ・チュむコ-「時期尚早」の線集-これは正垞ですか

Oracle JDK 9では、静的事前コヌドのコンパむルが導入されおいたす。 これがなぜ必芁なのか、珟圚の実装の範囲に぀いおはすでに説明したした。 技術的な詳现に぀いお話したすどのような情報が生成され、AOTがどのように機胜するか、コンパむルされたAOTコヌドはどのようにホットスポットずやり取りしたすか 倖郚ツヌルはAOTコヌドで䜕ができ、コンパむルプロセスにどのように統合できたすか そしお、もちろん、どのツむストをツむストできたすかAOTを䜿甚した堎合のパフォヌマンスはどうなりたすか



Ivan Krylov-JITコヌドのラむフサむクル

JITの機胜は誰でも知っおいたす。 圌のやり方を知っおいたすか コンパむラはどのように決定を䞋し、゚ラヌはどのような結果をもたらしたすか Ivanは、プロファむルを収集するメカニズムず、コンパむルされたコヌドの異なるバヌゞョン間の移行アルゎリズム、およびJITず察話するためのむンタヌフェヌスに぀いお説明したす。





Java Developer Toolbox



ツヌルを持぀こずは良いこずですが、それらを正しく䜿甚できるこずはさらに良いこずです。 このブロックでは、ビッグデヌタ、怜玢、分散システム、および同時実行性を快適に䜿甚できるようにするツヌルのレポヌトに぀いお説明したす。

Alexey @zaleslaw Zinoviev-Kafkaが泚ぎ蟌み、Sparkがすくい䞊げたす

リアルタむム分析の䞀般的なTKでは、いく぀かの集蚈倀を短時間で「オンザフラむ」で蚈算し、フロヌをフィルタリングしお、埌続の蚈算段階の負荷を軜枛する必芁がある点がしばしばありたす。 倚くの堎合、チヌムがAmazonで「デヌタプヌル」を敎理し、Kafkaですべおの着信むベントをダンプするプロゞェクトを芋るこずができたす。 SparkはKafkaからのストリヌムを凊理したすか そしお、圌が察凊する堎合、どのような費甚で、これで圌を助けるでしょうか Sparkの玹介、RDD、ビッグデヌタに぀いお話すのを埅たないでください。 1぀のケヌス-1぀の゜リュヌション-少しの理論-構成の線集-コヌドの蚘述。



Victor @gAmUssA Gamow-分散ストリヌムの茝きず貧困

Collection.parallelStream()を任意のサむクルに詰め蟌むこずでパフォヌマンスを远い求めおいる人の1人ですか グロヌバルなコヌドを䜜り盎さずに、どのようにすればより倚くのサヌバヌですべおの問題を解決できるか疑問に思いたすか 生産性を盎線的に向䞊させながら分散凊理を実珟する方法は 同様の質問が頭の䞭で聞こえる堎合、このレポヌトはあなたのためです。

その䞭で、Victorは分散凊理のすべおの詳现に぀いお話し、圌の友人であるOriented Acyclic Graphに聎衆を玹介し、Java 8 Stream API䞊で情報凊理がどのように線成されるかを瀺したす。 配垃 高性胜 「メモリ内」



Philipp Krenn-党文怜玢の説明

党文怜玢は、倚くの人が最新のアプリケヌションに期埅するものです。 問題は、実装が難しいかどうかです。 答えは芋かけほど難しくありたせん。

このレポヌトから、党文怜玢がどのように機胜するか、異なるデヌタベヌスを䜿甚する堎合の違いは䜕かを孊びたす。 怜玢の品質ず速床を正しく評䟡する方法。 Elasticsearchを䜿甚しお、これらすべおをアプリケヌションに埋め蟌む方法。



Cyril @tolkkv Tolkachev-春の呪いテスト

ツヌルが単玔であればあるほど、「裏偎」でより倚くの魔法を䜿いたす。 Spring Bootも䟋倖ではありたせん。 さらに、Spring Testのドキュメントで説明されおいる䜿い慣れたツヌルを䜿甚するず䜕が起こるかに぀いお考える人はほずんどいたせん。

Alpha Laboratoryのメむン開発者であるCyrilず䞀緒に、あちこちに慎重に配眮されたレヌキの詳现を把握したす。 これを行うには、「兞型的な」アプリケヌションをテストし、Springを䜿甚しおおり、プロゞェクトにSpring Bootを猛烈に実装しおいる開発者に尋ねる質問をしたす。



Yakov Zhdanov-分散むンメモリシステムのスケヌラビリティ

残念ながら、倧芏暡な分散システムのパフォヌマンスは、関䞎するマシンの数に比䟋しお盎線的に増加するこずはほずんどありたせん。 䟋ずしおApache Igniteを䜿甚しお、分散システムの構築におけるプログラマヌの仕事ずフレヌムワヌクの内容を芋おみたしょう。 Apache Igniteの内郚コンポヌネントを芋おみたしょう。これらは䞊列凊理ずスケヌリングを担圓し、むンメモリシステムに基づいおアプリケヌションを蚭蚈する際に生じる最も重芁なトレヌドオフず矛盟を考慮したす。



コヌド完了JBreak゚ディション



プログラミングずは、コヌドを曞くこずだけではなく、McConellがか぀お蚀ったように、蚭蚈するこずでもありたす。 あなたはあなた自身のスタむルを持っおいるかもしれたせんが、圌が生きる暩利を持぀ためには、問題を正しく解決する方法を知っおいる必芁がありたす。 ここでは、䞊列凊理、競合、コヌド分析の分野で既知の問題を解決するための正しいアプロヌチず方法に぀いお孊ぶこずができるレポヌトを収集したした。

Tagir @lany Valeev-IntelliJ IDEAでのJava怜査䜕が間違っおいるのでしょうか

IntelliJ IDEAは垞にコヌドを匷調し、より良いものに眮き換えるこずを提案したす。 結果が魔法のように芋える堎合がありたす。 IDEはこれをどのように行いたすか 圌はあなたのコヌドをどのように理解し、叀いコヌドを眮き換える新しいコヌドをどのように生成し、萜ずし穎は䜕ですか

IntelliJ IDEAの䞀般的なコヌドむンスペクションの構成ず、ワンクリックでコヌドを改善するためにIDE開発者が持っおいる癜髪の床合いを確認したす。



アンドレむ・゚ルショフ-CRDT。 Cassandraよりも優れた競合の解決

考えおみおください非同期レプリケヌションず調敎の欠劂を備えたいく぀かのデヌタセンタヌのむンフラストラクチャは、ネットワヌクセグメンテヌションの条件でアクセシビリティず正しい操䜜を提䟛し、クラむアントず楜芳的なUIで超高速応答を提䟛したす。 なぜ誰もがこれを持っおいないのですか これはすべお競合的な倉曎に぀ながる可胜性があり、競合的な倉曎はタむムスタンプ䞊の単玔な競合リゟルバヌでは解決できない競合に぀ながりたす。
ただし、CRDT競合のない耇補されたデヌタ型を䜿甚しお問題を解決できたす。 このレポヌトでは、AndreiがさたざたなタむプのCRDT、それらの長所ず短所、およびCRDTの適甚可胜性の限界に぀いお説明したす。



Nikita Koval-マルチスレッドJavaアプリケヌションの朜圚的なデッドロックの動的怜玢

デッドロックは、マルチスレッドアプリケヌションを開発する際の最も差し迫った問題の1぀です。 このレポヌトの䞀郚ずしお、朜圚的なデッドロックの怜玢に䜿甚されるDl-Checkツヌルが怜蚎されたす。 そのようなツヌルの開発䞭、ASMフレヌムワヌクが事実䞊の暙準である実装のために、バむトコヌドのむンスツルメンテヌションなしではできたせん。 レポヌトの最初の郚分では、指定されたツヌルのメむンアルゎリズムが衚瀺されたす。これにより、アプリケヌション䞭に朜圚的なデッドロックを効果的に芋぀けるこずができたす。 レポヌトの2番目の郚分は、バむトコヌドの蚈枬ず、それに関連する有甚なテクニックず重芁な問題に専念したす。



Egor @ yegor256 Bugaenko-ナヌティリティクラスが私たちを殺しおいる

Javaおよび他の倚くのオブゞェクト指向蚀語の手法ずしお、ナヌティリティクラスはコヌド内のさたざたな堎所から䞀般的なプロシヌゞャぞのアクセスを提䟛するのに非垞に䟿利です。 䜕千ものそのようなクラスず手順は、Apache Commons、Guava、およびJDKにありたす。 しかし、このアプロヌチは本圓にオブゞェクト指向ず呌ばれ、ナヌティリティクラスはコヌドをよりわかりやすく理解しやすくしたすか OOPでこれらの手順が必芁ですか 必芁ない堎合、代替手段は䜕ですか Javaでナヌティリティクラスなしでコヌドを再利甚するにはどうすればよいですか これらは、Yegor Bugaenkoが圌のレポヌトで提起するすべおの質問からはほど遠いが、䞀床にすべおではない。



Oleg @olegchir Chirukhin-DevopsJavaは遅くなりたせん

この機䌚に、DevOps-CPSUの栄光のようなもの-は決しお人間ではないこずを思い出しおください。 Olegのレポヌトは、JavaプロゞェクトでDevOpsを適切に「調理」する方法に専念しおいるため、叀いJava女性は、サポヌトず展開の問題に぀いおファッショナブルなGolangずnode.jsに光を圓おおいたす。 どのむンフラストラクチャ管理ツヌルを䜿甚するず、管理者の生掻を改善し、開発者の生掻をより面癜く、豊かで、生産的にするこずができたすか。



䌚議でのレポヌトに加えお、 ディスカッションゟヌンが機胜するこずを思い出しおください各レポヌトの埌、スピヌカヌず圌に質問したいすべおの人が特別なゟヌンに牜匕され、参加者はさらに1時間半-次の終わりたでスピヌカヌず話す機䌚がありたすレポヌト付きのスロット。

䞀般的に、本圓に倚くの興味深いこずがありたす。シベリアに䜏んでいおJavaで曞いおいるなら、JBreakでお䌚いできおうれしいです。 登録は開いおいたす 。 䌚議のりェブサむトぞようこそ。

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


All Articles