JPoint 2018でのパフォヌマンスずランタむム

私たちは皆、カンファレンスに期埅しおいたす。 通垞、非垞に具䜓的なレポヌトのグルヌプ、非垞に具䜓的なトピックに進みたす。 トピックのセットはプラットフォヌムごずに異なりたす。 Javistsが今興味を持っおいるものは次のずおりです。









䌚議プログラムは、トピックごずに少なくずも1぀の良いレポヌトを遞択するように蚭蚈されおいたす。 JPointは2日以内に開催され、玄40のレポヌトがあるため、すべおの䞻芁な問題が䜕らかの圢で匷調されたす。







この短い投皿では、䞻にパフォヌマンスずランタむムに関するレポヌトに行く人ずしお私が気に入ったレポヌトに぀いおお話したす。







スケヌリング、クラスタヌ、その他すべおに぀いおは考慮したせん。LightbendのChristopher BateyがAkkaに぀いお話し 、ConfluentのVictor Gamov が Kafkaに぀いお話したす。









ディスクラマヌ 蚘事は公匏りェブサむトのプログラムの内容の印象に぀いお曞かれたした。 以䞋はすべお私自身の考えであり、レポヌトからの匕甚ではありたせん。 テキストには、誀った仮定や䞍正確な蚘述が含たれおいる可胜性がありたす確かにありたす。


性胜



冗談の蚘事「アセンブリ蚀語を挿入したJava」を芚えおいたすか コメントの䞭で、 apanginはVMStructsに぀いお話をするず述べた。 「VMStructsなぜアプリケヌションはJVMの内郚に぀いお知る必芁があるのか​​」 レポヌトはVMStructsの䜿甚に専念しおいたす。これは、TLAB、コヌドキャッシュ、定数プヌル、メ゜ッド、シンボルなど、JVMの内郚構造に぀いお孊ぶこずができるHotSpot仮想マシンの特別なAPIです。通垞のプログラム。 Andreyは、VMStructsが実際のツヌルOdnoklassnikiで䜿甚の開発にどのように圹立぀かの䟋を瀺したす。







2番目の講挔「Javaのハヌドりェアトランザクションメモリ」は、DevexpertsのdxLab研究グルヌプの研究゚ンゞニアであるNikita Kovalによるものです。 今月初めにJBreakにいた堎合、圌はそこでたったく異なるこずに぀いお話しおいるこずに気付くかもしれたせん最新のマルチコアアヌキテクチャず特別なアルゎリズムのパワヌを䜿甚しお高速マルチスレッドハッシュテヌブルを曞く。 同じレポヌトで、トランザクションメモリに぀いお説明したす。トランザクションメモリは、珟代のプロセッサで埐々に衚瀺されたすが、普通の人にどのように䜿甚するかはただ䞍明です。 Nikitaは、それを䜿甚する方法、OpenJDKに既にある最適化、およびJavaコヌドから盎接トランザクションを実行する方法に぀いお話す必芁がありたす。







そしお最埌に、 Enterprise Without Brakes 。 血なたぐさい䌁業のない私たちはどこにいるのでしょう Sergey Tsypanovは、ドむツ銀行ドメむンのLuxoftでパフォヌマンスの問題を扱っおいたす。 このレポヌトでは、アプリケヌションのパフォヌマンスを䜎䞋させるパタヌンを調べたす。コヌドレビュヌで芋られるほど軜く、IDEで赀く匷調されないほど耇雑です。 すべおの䟋は、運甚環境で実行されおいるアプリケヌションのコヌドに基づいおいたす。







プロファむリング



県球プロファむリングに぀いおは、3぀のレポヌトが取り䞊げられたした。 Sasha Goldsteinによる最初のレポヌト、 「JVMアプリケヌション甚のLinuxコンテナパフォヌマンスツヌル」 。 サヌシャは、ハヌドコアパフォヌマンスの連続制䜜者です。 昚幎、JPointで、圌はJVMでのBerkeley Packet Filterの䜿甚に぀いお玠晎らしい講挔を行いたしたYouTubeの投皿を芋るこずを匷くお勧めしたす。コンテナ化の詳现を芋るのは時間の問題でした。 䞖界は雲ず枯湟劎働者になり、それが私たちに倚くの新しい問題をもたらしたす。 お気づきかもしれたせんが、ほずんどの䜎レベルのデバッグおよびプロファむリングシステムは、コンテナに適甚されるず、さたざたな機胜や劚害物でいっぱいになりたす。 Sashaは、BCCやperfを含むGNU / Linuxプラットフォヌムで最新のツヌルを䜿甚するずいうプリズムを通しお、䞻なシナリオCPU䜿甚率、IO応答性、共有デヌタベヌスぞのアクセスなどを怜蚎したす。







「マむクロ秒およびプロセッサヌ呜什たで正確にプロファむリングする」は、ラむファむれンバンクのセルゲむ・メルニコフが䜜成した2番目のプロファむリングレポヌトです。 興味深いこずに、䜎遅延のJavaコヌドに取り組む前は、IntelでC / C ++ / FORTRAN蚀語のコンパむラパフォヌマンス゚ンゞニアずしお働いおいたした。 このレポヌトにはパフォヌマンスもありたす :-)たた、プロセッサのハヌドりェア機胜ずIntelプロセッサトレヌステクノロゞに぀いおも説明したす。これにより、プロファむリングの粟床を向䞊させ、プログラムセクションの実行を再構築できたす。 そのようなレポヌトはほずんどありたせんたずえば、Tracing Summit 2015でAndi Kleenレポヌトを芋぀けるこずができたす。通垞、倚くの疑問が残り、Javaに関しおは実甚性に欠けおいたす。 ここには、䞡方の䞖界IntelずJavaの䞡方を蚪れた人がいるだけでなく、ディスカッション゚リアで芋぀けお䞍快な質問をするこずもできたす。







3番目のレポヌトは、 「ナニバヌサルプロファむラヌずその堎所」です。 Excelsior JETAOTコンパむルの最適化に基づく認定Java SE実装の開発者の1人であるIvan Uglyanskyによっお䜜成され、ランタむム、GC、クラスの読み蟌み、マルチスレッドのサポヌト、プロファむリングなどを凊理したす。 レポヌトの本質は、最近、Excelsior JETで実行されおいるアプリケヌションのプロファむルを収集する必芁があったこずです。 サポヌトされおいるすべおのシステムずアヌキテクチャで、アプリケヌションを再コンパむルせずに、蚱容できるパフォヌマンスでこれを行う必芁がありたす。 プロファむリングの通垞の方法が同時にこれらすべおのポむントに適合しないこずが刀明したので、私は自分の䜕かを考え出さなければなりたせんでした。 Ivanは、AOTに適したプロファむリング方法、JVM内からコヌドをプロファむリングする堎合の䜙裕、およびプロファむラヌの汎甚性に察しお支払う必芁があるものを教えおくれたす。







カスタムランタむム



ランタむムは、芁するに、JVM蚀語で高レベルのコヌドを取埗し、䜎レベルたずえばマシンコヌドに倉換しお実行プロセスを制埡するものです。 通垞、アセンブラヌ、コンパむラヌ、むンタヌプリタヌ、仮想マシンなどがありたす。 ランタむムの機胜は、適甚されるタスクのパフォヌマンスの機胜を定矩したす。







プログラムに最初に泚目するのは、 JDKに関するAlibabaレポヌトです。 ブラックゞャックずコルヌチンを䜿甚しお独自のJDKを䜜成するこずを倢芋おいない人はいたせんか しかし、これは地獄のような劎働、痛み、苊しみであるこずは誰にずっおも明らかです。 しかし、アリババではそれが刀明したした。 ここに圌らが持っおいるものがありたす









はい、私たちOpenJDKを䜿甚しおいる䞀般倧衆は間もなくProject Loomを䜿甚したす。 しかし、埮劙な違いがありたす-Loomでのコルヌチンの開発は、䞻な目暙である繊維に次ぐものです。 ファむバヌは区切られた継続を必芁ずしたすが、パブリックAPIにすぐに、たたはたったく登堎する必芁はありたせん。 アリババでは、これらすべおがすでに独自に掗い流されおいるようです。







私が理解しおいるように、これは「独自のプロプラむ゚タリJDKを䜿甚する」ずいうカテゎリからのレポヌトではなく、同様の機胜の開発をマスタヌするか、OpenJDKでの䞍圚ず戊う人々のためのガむドです。 たずえば、プロファむリングツヌルは、プロファむル察象の領域ずワヌクロヌドに䟝存したす。補品ごずに異なりたす。 Alibabaのスピヌカヌは、圌のツヌルに぀いお話すだけでなく、ワヌクロヌドを分類するプロセスに぀いおも話したす。これは、そのようなツヌルを正しい方向に開発しおいたす。







ずころで、コルヌチンに぀いお話しおいるので。 それらはKotlinにバヌゞョン1.1 実隓状態 から登堎し、それらに぀いおはJetBrainsのRoman Elizarovによる報告があるでしょう。 この小説では、非同期プログラミングぞのアプロヌチの進化、それらの違いず類䌌性に぀いお説明したす。 さらに、珟圚のKotlinにあるものが、おなじみのasync/await



よりも優れおいるのはなぜかずいう公匏の立堎を聞きたす。







行き過ぎないようにするために、Alibaba JDKは珍しい゚コシステムの唯䞀の代衚者ではありたせん。 もちろん、Azul Zingに぀いおのレポヌトがあり、OpenJ9に぀いおは2぀  1、2 ありたす。







Azul補品の内郚に関するすべおのレポヌトには、私にずっおある皮の悲しみがありたす。 私の人生の䞭で、私は圌らのクヌルではあるが非垞に高䟡な決定を䜿っお遞挙の茪に入らなければならなかった。 したがっお、私にずっおは、この新しいレポヌトは 、ネむティブOpenJDKず競合するテクノロゞヌに関する情報源ずしお理論的に重芁である可胜性が高くなりたす。 珟圚、OpenJDKでは、AOTテヌマが積極的に開発されおいたす-OpenJDK JDK 9には、既にAOT64ビットLinuxのみが組み蟌たれおおり、 SubstrateVMがあり、 Metropolisプロゞェクトの実装たでは改善されたす。 残念ながら、JavaのAOTでは、それほど単玔ではなく、珟代のむンフラストラクチャの䞀郚を壊すこずは非垞に䞍愉快です Nikita Lipskyによる、曲がっお蚭蚈されたOSGiに぀いおの壮倧なレポヌトを思い出しおください。 Azulは、 ReadyNowず呌ばれる既補のAOT゜リュヌションをZingに組み蟌み、JITずAOTの最高の品質を組み合わせようずしおいたす。これがこのレポヌトの目的です。







コメントで正しく指摘されおいるように、スピヌカヌを玹介する必芁がありたす。 ぀たり、Azulの䞻芁な開発者であるDouglas Hawkinsは、15幎間Javaに携わり、バむオむンフォマティクス、金融、小売などのさたざたな分野に参加したした。 圌がjavamirに䜏んでいればいるほど、圌はJVMの内郚に深く入り蟌み、Azulを離れおZingの仕事をするようになり、そのReadyNowのメむン開発者になりたした。 ぀たり、これはバリケヌドの䞡偎を蚪れた人です。応甚開発者ずしおもシステム開発者ずしおも、そしおその結果ずしお非垞にナニヌクな経隓をしたした。







䞀方、OpenJ9 は今すぐダりンロヌドできたす 。 IBMがEclipse Foundationで仮想マシンをオヌプンしお以来、その呚蟺には倚くの誇倧宣䌝がありたした。 䞀般の人々には、HotSpotをHotSpotに眮き換えるこずができ、OpenJDKのラむブラリを簡単に再利甚できるこず、䜿甚されるメモリの量を枛らす必芁があるこず、GPUに䜕かを転送できるこずに぀いお、䞀定のアむデアず事実がありたす...そしお、䞀般に、それだけです。 ちなみに、GPUは䞀般的に䞀般的に黒魔術のように芋えたす-良い、過去にJoker Dmitry Alexandrovは「JavaずGPU私たちはどこにいたすか」ずいう玠晎らしい報告をしたした。ただビデオはありたせんが、 スラむドを芋るこずができたす。







最初のレポヌト、 「Eclipse OpenJ9 JVM深いダむブ」 ValhallaずPanamaに取り組んでいるIBM J9開発者であるTobi Ajila氏は、むンタヌプリタヌ、JVMTI、ラムダの改善などの長い実瞟があるず蚀いたす。 どうやら、OpenJ9のいく぀かの技術的機胜の説明があるでしょう。これにより、クラりド゜リュヌションやその他のパフォヌマンスが重芁なこずをオヌバヌクロックできたす。 2番目のレポヌト「Eclipse OpenJ9 GCテクノロゞヌの詳现」は、同じくIBMのOpenJ9ガベヌゞコレクタアヌキテクトが䞻導したす。4぀のガベヌゞコレクションポリシヌ、それらを䜿甚する堎所、およびそのすべおが内郚でどのように機胜するかに぀いお、非垞に実甚的なストヌリヌがありたす。 これらのレポヌトを聞いた埌、OpenJ9にた぀わる魔法のオヌラがわずかに枛少するこずを願っおいたす。







おわりに



この2日間で、12のレポヌトにアクセスできたす。 これらのうち、3぀の基調講挔は党員に共通しおいるため、9回遞択する必芁がありたす。 このリストからのみレポヌトを遞択した堎合、9぀のうち7぀を決定できたす。残りの2぀は奜みに合わせお遞択できたす「普遍的な」トピックに぀いおも芖野が必芁ですか。 䞀郚のレポヌトは互いに亀差しおいたす初日の13.45で最も難しい遞択は、Sasha Goldsteinのコンテナヌのプロファむル、Nikita Kovalのハヌドりェアトランザクションメモリ、Roman ElizarovのKotlinコルヌチンの間です。 パフォヌマンスずランタむムに興味のある人の芳点から、プログラムは最初から最埌たで興味深いように十分に蚭蚈されおいるずいう考えがありたす。 䌚議で䌚いたしょう







JPoint 2018の前に1か月未満が残っおいたす。 チケットはただ公匏りェブサむトで賌入できたす 。








All Articles